bab 2 landasan teori 2 -...
TRANSCRIPT
15
BAB 2
LANDASAN TEORI
2.1 Teori Umum
2.1.1 Pengertian Software Aplikasi
Menurut (Pressman, 2010, p9) software aplikasi adalah aplikasi yang berdiri
sendiri untuk memecahkan masalah bisnis yang spesifik. Dalam hal aplikasi pemrosesan
bisnis konvensional, software aplikasi digunakan untuk mengontrol fungsi bisnis dalam
waktu nyata. Aplikasi software dibagi menjadi dua kelas yaitu : systems software dan
applications software.
Systems software terdiri dari program tingkat rendah yang berinteraksi dengan
komputer pada tingkat dasar, contohnya sistem operasi, compiler, dan semua utilitas yang
digunakan untuk mengelola sumber daya komputer.
Sedangkan, application software contohnya adalah program database, word processors,
dan spreadsheets. dapat diambil kesimpulan bahwa tanpa sistem operasi pengguna tidak
dapat menjalankan program aplikasi di komputer mereka, kecuali program aplikasi
booting.
2.1.1.1 Domain Aplication Software
Berikut ini adalah tujuh kategori software komputer pada saat ini
(Pressman, 2010, P7):
• System Software - Kumpulan program yang ditulis untuk menyokong program
lainnya.
16
• Application Software - Program stand-alone yang menyelesaikan kebutuhan
bisnis yang spesifik.
• Engineering/Scientific Software - Aplikasi yang berkarakteristik "number
crunching algorithm".
• Embedded Software - Berdampingan dengan sistem atau produk yang digunakan
untuk mengimplementasikan dan mengontrol fitur pada ende user dan untuk
sistem itu juga.
• Product-line software - Dirancang untuk menyediakan kemampuan spesifik agar
dapat digunakan pengguna-pengguna yang berbeda.
• Web Application - Disebut juga WebApps, software yang berpusat pada jaringan
ini berentang luas pada susunan aplikasi. WebApps dapat lebih dari himpunan
hypertext files yang mempresentasikan informasi menggunakan text dan gambar.
• Artificial intelligence software - Memanfaatkan nonnumerical algorithms untuk
menyelesaikan masalah kompleks yang tidak dapat diterima oleh analisis
sederhana.
2.1.2 Web Apps
Menurut Pressman (2010, p8) Aplikasi web yang disebut "webapps,"
adalah kategori perangkat lunak jaringan-sentris yang mencakup beragam
aplikasi. Dalam bentuknya yang paling sederhana, webapps dapat menjadi link hypertext
informatif yang menggunakan teks dan grafis yang terbatas. Namun, dengan munculnya
Web 2.0, webapps berkembang menjadi lingkungan komputasi canggih yang tidak hanya
17
menyediakan fitur stand-alone (berdiri sendiri), fungsi komputasi, dan konten kepada
pengguna akhir, tetapi juga terintegrasi dengan database perusahaan dan aplikasi bisnis
Pada 2.1.1 disebutkan web application adalah bagian dari kategori software yang
berbeda. WebApps meliputi segala hal mulai dari halaman web sederhana, sebagai contoh
aplikasi web yang membantu costumer menghitung biaya penyewaan mobil hingga
website komprehensif yang menyediakan layanan travel untuk pelaku bisnis dan
wisatawan. (Pressman, 2010, p10).
Berikut ini adalah atribut-atribut yang ditemukan dalam WebApps (Pressman, 2010, p11):
• Network Intensiveness
Suatu WebApps yang berdampingan dengan jaringan (network) harus melayani
kebutuhan komunitas atau klien.
• Concurrency
Jumlah pemakai WebApps dapat dalam jumlah yang banyak pada suatu waktu.
• Unpredictable Load
Jumlah user WebApps dapat berubah-ubah dalam hari ke hari.
• Performance
User WebApps tidak harus menunggu lama untuk waktu pemrosesan.
• Avaliability
Walaupun ekspektasi 100 persen itu tidak masuk akal, User WebApps populer
umumnya meminta akses yang berbasiskan 24/7/365 (Siklus kerja 24 jam, 7 hari
dalam satu tahun).
• Data Driven
18
Fungsi utama dari beberapa WebApps adalah untuk menggunakan hypermedia untuk
mempresentasikan gambar, teks, audio, video pada user.
• Content Sensitive
Kualitas dan estetika konten tetap menentukan kualitas dari WebApps.
• Continuous Evolution
Tidak seperti aplikasi konvensional yang berkembang melalui rangkaian release yang
terencana dan kronologis, WebApps berkembang secara terus menerus.
• Immediacy
WebApps sering memperlihatkan time-to-market dapat dalam hitungan beberapa hari
atau minggu.
• Security
Karena WebApps tersedia melalui akses network, susah untuk membatasi angka end
user yang memungkinkan akses ke aplikasi.
2.1.3 Web Browser
World Wide Web (WWW) atau yang lebih dikenal denga web, merupakan
penjelajahan halaman informasi yang sangat besar yang berada di dalam internet. Sebuah
browser, atau web browser, adalah software yang memungkinkan Anda untuk
menemukan dan mengakses berbagai informasi dari web. Informasi yang ada di dalam
web di presentasikan di dalam sebuah halaman web yang terbentuk dari sekumpulan teks,
grafik, gambar, suara, dan video. Dengan tambahan, halaman web dapat dapat berisi
hyperlink tertuju ke halaman web lain yang membuat user dapat mencari informasi lain
(Connolly and Begg, 2010, p 1028).
19
WWW bekerja berdasarkan tiga mekanisme, yaitu :
a. Protokol : Aturan standar yang digunakan untuk berkomunikasi pada jaringan
komputer. misalnya HTTP (Hypertext Transfer Protocol) yaitu protokol untuk www.
b. Alamat (Address) : www memiliki aturan penamaan alamat web yaitu URL (Uniform
Resource Locator) sebagai standar alamat internet.
c. HTML (Hypertext Markup Language) : digunakan untuk membuat dokumen yang
bisa diakses melalui internet.
Aplikasi Web pada awalnya hanya dibangun dengan menggunakan bahasa HTML,
pada perkembangan berikutnya, sejumlah script dan objek dikembangkan untuk
memperluas kemampuan HTML, seperti PHP
2.2 Teori Khusus
2.2.1 HTML
Menurut Connolly dan Begg (2010, p 1031) HTML atau HyperText Markup
Language adalah sistem untuk menandai atau tagging, sebuah dokumen sehingga
dapat di publikasikan di dalam sebuah web. HTML mendefinisikan apa yang di
kirimkan secara umum di dalam jaringan. Hypertext Markup Language (HTML)
merupakan bahasa yang digunakan untuk membuat suatu situs web atau Homepage.
Setiap dokumen dalam web ditulis dalam format HTML. Semua format dokumen,
hyperlink yang dapat di klik, gambar, dokumen multimedia dapat di isi dan
sebagainya didasarkan atas HTML.
2.2.2 PHP
20
Menurut Welling dan Thomson (2009, p2-3), "PHP adalah bahasa server-side
scripting yang dirancang untuk web. dalam suatu halaman HTML, kode PHP dapat
disisipkan yang kemudian akan di eksekusi setiap kali halaman itu dikunjungi. PHP
diinterpretasikan pada server web dan mengeluarkan HTML atau output lainnya yang
akan dilihat oleh pengunjung halaman itu."
PHP adalah bahasa scripting yang menyatu dengan HTML dan dijalankan pada
server side, yang artinya semua sintaks yang diberikan akan sepenuhnya dijalankan
pada server sedangkan yang dikirimkan ke browser hanya hasilnya saja. PHP
merupakan software open source. PHP juga dapat berjalan lintas platform, yaitu
dapat digunakan dengan sistem operasi (windows dan linux) dan web server apapun
(misalnya : Apache).
2.2.3 CSS (Cascading Style Sheet)
Menurut Slamet Riyanto (2009, p.236) Cascading Style Sheet (CSS) merupakan
kumpulan kode-kode yang berurutan dan saling berhubungan untuk mengatur format /
tampilan suatu halaman HTML dan merupakan salah satu bahasa
pemrograman web untuk mengendalikan beberapa komponen dalam sebuah web
sehingga akan lebih terstruktur dan seragam.
CSS dapat mengendalikan gambar, warna bagian tubuh pada teks, warna tabel,
ukuran border, warna border, warna hyperlink, warna mouse over, spasi antar paragraf,
spasi antar teks, margin kiri, kanan, atas, bawah, dan parameter lainnya. CSS adalah
bahasa style sheet yang digunakan untuk mengatur tampilan dokumen. Dengan adanya
21
CSS memungkinkan kita untuk menampilkan halaman yang sama dengan format yang
berbeda.
2.2.4 UML
Menurut Whitten dan Bentley (2007, p430), Unified Modelling Languange
(UML) merupakan sekumpulan aturan atau ketentuan permodelan yang digunakan untuk
menentukan dan menggambarkan sebuah sistem software yang berhubungan dengan
objek. UML merupakan suatu kumpulan teknik terbaik yang telah terbukti sukses dalam
memodelkan system yang besar dan kompleks. UML tidak hanya digunakan dalam proses
pemodelan perangkat lunak, namun hampir dalam semua bidang yang membutuhkan
pemodelan.
2.2.4.1 Use Case
Menurut Whitten & Bentley (2007, p246), Use Case merupakan diagram yang
menggambarkan interaksi antara sistem dengan hal-hal eksternal dari sistem dan user.
Use Case menjelaskan interaksi yang terjadi antara ‘aktor’ inisiator dari interaksi
sistem itu sendiri dengan sistem yang ada, sebuah use case di representasikan dengan
urutan langkah yang sederhana.
Aktor adalah sesuatu atau seseorang yang ada di luar sistem dan ikut berperan
serta dalam aktifitas sistem. Aktor bisa berupa: end user, perangkat hardware, bahkan
sistem yang lain. Setiap use case merupakan sebuah seri yang lengkap dari sebuah
event kejadian, di lihat dari sudut pandang aktor. Fokus dari sebuah use case adalah
menjelaskan bagaimana mencapai sebuah tujuan atau goal.
22
USE CASE DIAGRAM
Berikut elemen-elemen yang terdapat didalam Use Case Diagram :
1) Actor
Elemen aktor diumpamakan adalah sebuah peran dari user sebuah sistem.
Aktor ini bisa berupa human user atau bahkan bisa sebuah sistem yang lain.
Dalam diagram use case, elemen aktor di notasikan dengan notasi :
Gambar 2.1 Actor dalam Use Case
Karakterisitik dari sebuah aktor antara lain :
• Aktor merupakan elemen eksternal dari sistem
• Aktor berinteraksi dengan sistem, aktor boleh menggunakan fungsionalitas
dan menerima informasi kepada sistem.
• Aktor dapat berbentuk class, maka aktor bisa memiliki instance atau objek
yang merepresentasikan aktor yang lebih spesifik.
2) UseCase
Class Use Case digunakan untuk merepresentasikan unit fungsionalitas
atau pelayanan yang di berikan oleh sebuah sistem/bagian sistem, Use Case
dinotasikan dengan simbol elips atau oval. Dalam diagram, Use Case
digambar didalam simbol kotak yang merepresentasikan sistem. Use Case
memiliki karakteristik :
23
• Merupakan interaksi atau dialog antara sistem dan aktor, termasuk
pertukaran pesan dan aksi yang di lakukan oleh sistem.
• Sebuah use case diinisiasikan oleh aktor dan bisa melibatkan lebih dari
satu aktor.
• Use Case memiliki instance atau objek yang disebut dengan skenario yang
merepresentasikan interaksi yang spesifik.
Secara garis besar use case diagram digunakan untuk memodelkan bisnis
proses berdasarkan perspektif pengguna sistem. Use case diagram terdiri atas
diagram untuk use case dan aktor. Aktor merepresentasikan orang yang akan
mengoperasikan atau orang yang berinteraksi dengan sistem aplikasi.
Use case merepresentasikan operasi-operasi yang di lakukan oleh aktor. Use case
digambarkan berbentuk elips dengan nama operasi dituliskan didalamnya. Aktor
yang melakukan operasi dihubungkan dengan garis lurus ke use case.
24
Gambar 2.2 Contoh Usecase Diagram(Sumber Whitten & Bentley 2007,p384)
2.2.4.2 Class Diagram
Menurut Whitten & Bentley (2007, p382) Class diagaram menggambarkan
sturktur dari sistem. Serta hubungan antara objek tersebut dengan objek lainnya.
Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan
layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram
menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan
satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain.
Class memiliki tiga area pokok, yaitu :
1. Nama
Merupakan nama dari sebuah kelas
2. Atribut
25
Merupakan properti dari sebuah kelas. Atribut melambangkan batas nilai yang
mungkin ada pada obyek dari class.
3. Operasi
Sesuatu yang bisa dilakukan oleh sebuah class atau yang dapat dilakukan oleh
class lain terhadap sebuah class.
Atribut dan metode dapat memiliki salah satu sifat berikut :
• Private
Tidak dapat dipanggil dari luar class yang bersangkutan.
• Protected
Hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang
mewarisinya.
• Public
Dapat dipanggil oleh siapa saja.
• Package
Dapat dipanggil oleh instance sebuah class pada paket yang sama.
HUBUNGAN ANTAR CLASS
1. Asosiasi
Yaitu hubungan statis antar class. Umumnya menggambarkan class yang
memiliki atribut berupa class lain, atau class yang harus mengetahui
eksistensi class lain. Panah navigability menunjukkan arah query antar class.
2. Agregasi
Yaitu hubungan yang menyatakan bagian dari class
26
3. Pewarisan
Hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan
mewarisi semua atribut dan metode class asalnya dan menambahkan
fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya.
Kebalikan dari pewarisan adalah generalisasi.
4. Hubungan dinamis
Rangkaian pesan (message) yang dipassing dari satu class kepada class lain.
Hubungan dinamis dapat digambarkan dengan menggunakan sequence
diagram yang akan dijelaskan kemudian.
Gambar 2.3 Contoh Class Diagram (Sumber Whitten & Bentley 2007, p377)
27
2.2.4.3 Activity Diagram
Menurut Whitten & Bentley (2007, p390) activity diagram menggambarkan
berbagai alur aktivitas dalam sistem yang sedang dirancang, bagaimana masing-
masing alir berawal, keputusan decision yang mungkin terjadi, dan bagaimana
mereka berakhir. Activity diagram merupakan state diagram khusus, dimana sebagian
besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state
sebelumnya (internal processing). Oleh karena itu activity diagram tidak
menggambarkan behavior internal sebuah sistem (dan interaksi antar subsistem)
secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari
level atas secara umum. Struktur diagram ini mirip flowchart atau Data Flow
Diagram (DFD) pada perancangan terstruktur. Activity diagram dibuat berdasarkan
sebuah atau beberapa use case pada use case diagram.
28
Tabel 2.1 Notasi pada Activity Diagram
29
Gambar 2.4 Contoh Activity Diagram (Sumber : Whitten&Bentley 2007,p393)
2.2.4.4 Sequence Diagram
Menurut Whitten & Bentley (2007, p382), Sequence diagram menggambarkan
interaksi antar objek di dalam dan di sekitar sistem(termasuk pengguna, display,
dan sebagainya) berupa pesan yang digambarkan terhadap urutan waktu tertentu.
Sequence diagram terdiri atas dimensi vertikal (waktu) dan dimensi
horizontal(objek-objek yang terkait dalam suatu usecase). Sequence diagram biasa
digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang
30
dilakukan sebagai respons dari sebuah suatu kejadian untuk menghasilkan output
tertentu. Diagram ini juga menggambarkan urutan kejadian yang terjadi. Dan lebih
detail dalam menggambarkan aliran data, termasuk data atau behavior yang
dikirimkan atau diterima. Namun, diagram ini kurang mampu menjelaskan detail
dari sebuah algoritma, seperti loop, branching. Kumpulan dari diagram sequence
dapat disebut sebagai diagram kolaborasi.
Tabel 2.2 Elemen Sequence Diagram
Actor Menggambarkan orang atau entitas
eksternal yang berinteraksi dengan sistem.
Object &
Lifeline
Menggambarkan sebuah objek dalam
sebuah system atau salah satu
komponennya. Objek merupakan sebuah
intansi dari sebuah class.
Lifeline menggambarkan alur data dari
objek.
Activation
Bar
Menggambarkan durasi/lamanya
pengerjaan sebuah pesan (message).
Message Sebuah message sederhana antara elemen
header (biasanya berupa synchronus atau
asynchronus). Dan juga mengindikasikan
komunikasi antara objek.
Synchronus Menggambarkan Message ke elemen
31
Message (objek) lain, dimana message
inimengaktifkan sebuah proses dan sampai
selesai, baru bisa mengirimkan sebuah
message baru.
Return Suatu hasil kembalian sebuah operasi
(feedback dari sebuah message)
Destroy
Message
Menggambarkan penghancuran dari
sebuah elemen header (objek) sebagai
akibat dari sebuah message dari
elemen/objek lain.
Contoh Sequence diagram (Sumber : Whitten &Bentley 2007, p395
32
2.2.5 Model View Controller (MVC)
Menurut Rob Allen (2008, p6) MVC yaitu suatu istilah untuk memisahkan
element-element atau penulisan source code dari suatu aplikasi agar menjadi lebih rapih
dan lebih mudah untuk dimaintain dan dikembangkan. MVC merupakan suatu konsep
pemrograman yang juga banyak diterapkan akhir-akir ini. Dengan menerapkan MVC
dalam membangun suatu aplikasi akan berimbas pada kemudahan pada saat aplikasi
tersebut memasuki fase maintenance. Proses pengembangan dan integrasi pun menjadi
lebih mudah untuk dilakukan. Ide dasar dari MVC sebenarnya sangat sederhana, yaitu
mencoba untuk memisahkan antara model, view, dan controller. Ada tiga layer utama
dalam arsitektur web MVC, yang disebut sebagai best practices yaitu :
1. Model
Model sebagai representasi dari data yang terlibat dalam suatu proses transaksi. Setiap
kali method / function dari suatu aplikasi butuh untuk melakukan akses ke dalam
suatu data, maka function / method tersebut tidak langsung berinteaksi dengan sumber
data tersebut melainkan harus melalui model terlebih dahulu. Dalam hal ini hanya
model yang diijinkan untuk berinteraksi langsung dengan sumber data.Secara singkat,
layer model ini menangani content dari aplikasi.
2. View
33
Berperan sebagai presentation layer atau pengatur user interface (tampilan) bagi user
dari suatu aplikasi. Data yang dibutuhkan oleh user akan diformat sedemikian rupa
agar dapat tampil dan dipresentasikan dengan format tampilan yang memang
disesuaikan dengan kebutuhkan user. Sehingga layer ini tidak peduli apa saja content
yang ada. Misalnya, untuk Aplikasi Diskon, layer ini memutuskan apakah daftar
belanja akan ditampilkan dalam tabel HTML, ditampilkan ke command prompt,
disajikan dalam tabel Swing, atau diekspor menjadi file text. Sebagai tambahan,
biasanya layer View juga bertugas untuk melakukan validasi data yang diinputkan
user.
3. Controller
Berperan sebagai logic aspect dari suatu aplikasi / mengatur user flow. Controller lah
yang akan menentukan bussiness process dari aplikasi yang dibangun. Controller
akan merespon setiap inputan dari user dengan melakukan pemanggilan terhadap
model dan view yang sesuai sehingga request dari user tersebut dapat terpenuhi
dengan baik. Biasanya layer controller juga digunakan untuk mengatur ijin akses dan
permission.
2.2.6 Pendekatan Database
Database tentunya penting dalam suatu proses bisnis. Menurut Connoly & Begg
(2010, p54), "Database adalah sekumpulan data yang berhubungan (berelasi) dan suatu
Database Management System (DBMS) sebagai software yang mengatur dan
mengendalikan akses ke database."
34
Database system adalah suatu program yang berinteraksi dengan database
bersamaan dengan DBMS dan database itu sendiri. (Connoly & Begg, 2010, p54).
2.2.6.1 Database Management system (DBMS)
Connoly & Begg (2010, p66) mengutarakan "DBMS adalah software yang
berinteraksi dengan database". DBMS menyediakan fasilitas berikut ini :
• Memungkinkan user menentukan database melalui Data Defenition Language
(DDL). DDL memungkinkan user menentukan tipe data, struktur serta constraints
untuk data yang disimpan dalam database.
• Memungkinkan user melakukan insert, update, delete, dan retrieve dari database
itu sendiri melalui Data Manipulation Language (DML). DML memungkinkan
permintaan umum untuk data yang biasa disebut query language. Query language
yang paling umum adalah Structured Query Language (SQL).
• Menyediakan akses kontrol ke database.
Contoh umum DBMS adalah MySQL, Microsoft Access, Microsoft SQL Server,
PostgreSQL, dan sebagainya.
2.2.6.2 Structured Query Language
Pengertian SQL Server menurut Ketut Darmayuda (2007,p7) dalam bukunya yang
berjudul Pemrograman Aplikasi Client Server mengatakan bahwa “Microsoft SQL
Server merupakan salah satu database relational yang banyak digunakan. SQL Server
dirancang untuk penggunaan aplikasi dengan arsitektur client/server.” Sedangkan
35
menurut Kusrini dan Andri Koniyo dalam bukunya yang berjudul Tuntunan Praktis
Membangun Sistem Informasi Akuntansi dengan Visual Basic & Microsoft SQL
Server (2007,p145), mengatakan bahwa “Microsoft SQL Server 2000 adalah
perangkat lunak relational database management system (RDBMS) yang didesain
untuk melakukan proses manipulasi database berukuran besar dengan berbagai
fasilitas.”
2.2.6.3 MySQL
MySQL merupakan relational database management system yang kuat dan akses
yang cepat. MySQL server mengontrol akses ke data untuk memastikan bahwa user
dalam jumlah banyak dapat bekerja dengan MySQL secara bersamaan, untuk
menyediakan akses cepat, dan untuk memastikan bahwa hanya pihak berwenang yang
mendapatkan akses itu. Dengan demikian, MySQL bersifat multiuser, multireaded
server. MySQL menggunakan SQL sebagai standar bahasa query untuk database.
(Welling & Thomson, 2009, p3).
2.2.7 Software Process
Pressman (p31, 2010) mendefenisikan software process sebagai framework pada
aktifitas, aksi dan tugas yang diperlukan untuk membangun software. Software process
menentukan pendekatan apa yang diambil saat software direkayasa (engineered).
Sementara defenisi proses itu sendiri adalah kumpulan aktivitas, aksi dan
pekerjaan yang dilakukan saat produk dibuat. (Pressman, 2010, p14)
36
Pressman(2010, p15) mengutarakan umumnya framework dari software process
itu sendiri ada 5 aktifitas, yaitu :
• Communication
Sebelum pekerjaan teknis dilakukan, sangat penting untuk berkomunikasi dan
berkolaborasi dengan pengguna yang membantu menentukan fitur dan fungsi
software.
• Planning
Software Project adalah perjalanan yang rumit, dan aktifitas planning membuat
panduan untuk membantu tim berjalan. Dalam planning ditentukan tugas apa yang
dilakukan, resiko yang dihadapi, sumber daya yang dibutuhkan, dan work product
yang akan dihasilkan.
• Modeling
Software engineer membuat model untuk pemahaman yang lebih baik mengenai
requirements dari software dan rancangan yang akan didapat.
• Construction
Aktivitas ini memadukan code generation dan testing yang digunakan untuk
menyingkap errors.
• Deployment
Software diberikan pada costumer yang melakukan evaluasi pada delivered product
dan menyediakan feedback dari evaluasi.
37
Tambahan umbrella activities yang berupa project tracking and control, risk
management, quality assurance, configuration management, technical reviews dan
lainnya diaplikasikan seiring proses berjalan. (Pressman, 2010, p31)
2.2.7.1 Metode Perancangan SDLC
System Development Life Cycle (SDLC) dalam rekayasa sistem dan rekayasa
perangkat lunak, adalah proses pembuatan dan pengubahan sistem serta model dan
metodologi yang digunakan untuk mengembangkan sistem-sistem tersebut.
2.2.7.1.1 Model Proses Waterfall
Model waterfall adalah proses pengembangan software yang sistematis
dan sekuensial, dimana kemajuan dipandang sebagai terus mengalir ke bawah
(seperti air terjun) melalui communication, planning, modeling, construction, dan
deployment. (Pressman, 2010, p39)
Gambar 2.6 Waterfall Model
38
Berikut adalah penjelasan dari tahap-tahap yang dilakukan di dalam model
waterfall :
1. Communication
Permodelan ini diawali dengan komunikasi dan kolaborasi dengan konsumen
(stackholders) untuk mencari kebutuhan dari keseluruhan sistem yang akan
diaplikasikan ke dalam bentuk software. Hal ini sangat penting, mengingat
software harus dapat berinteraksi dengan elemen-elemen yang lain seperti
hardware, database, dsb. Tahap ini sering disebut dengan project defenition.
2. Planning
Proses ini menetapkan rencana untuk pengerjaan software meliputi : tugas-
tugas teknis yang dilakukan, resiko yang mungkin terjadi, sumber-sumber
yang dibutuhkan, hasil yang akan dibuat, dan jadwal pengerjaan.
3. Modeling
Proses ini meliputi pembuatan model yang memungkinkan pengembang dan
konsumen untuk lebih memahami kebutuhan perangkat lunak dan desain yang
akan mencapai kebutuhan tersebut.
4. Construction
Proses ini merupakan proses gabungan dari coding dan testing. Untuk dapat
dimengerti oleh sistem komputer, maka desain tadi harus diubah bentuknya
menjadi bentuk yang dapat dimengerti oleh mesin, yaitu kedalam bahasa
pemrograman melalui proses coding. Sedangkan testing adalah sesuatu yang
dibuat harus diuji. Demikian juga dengan software. Semua fungsi-funsi
39
software harus diuji, agar software bebas dari error, dan hasilnya harus benar-
benar sesuai dengan kebutuhan yang sudah didefenisikan sebelumnya.
5. Deployment
Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah
pengembangan, karena software yang dibuat tidak selamanya hanya seperti
itu. Ketika dijalankan mungkin saja masih ada error kecil yang tidak
ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada
software tersebut. Pengembangan diperlukan ketika adanya perubahan dari
eksternal perusahaan seperti ketika ada pergantian sistem operasi atau
perangkat lainnya.
2.2.8 Pendekatan Software Testing
Software testing adalah aktivitas yang ditujukan untuk mengevaluasi atribut atau
kemampuan dari program dan memastikan bahwa program itu sesuai dengan hasil yang
diinginkan. Gagasan dasar dari testing melibatkan eksekusi dari software dan observasi
dari behaviour atau outcome. Jika kegagalan diamati, execution record dianalisa untuk
mengetahui dan membenahi masalah yang membuat kegagalan itu. (Tian, 2008, p67)
2.2.8.1 Manfaat Testing
Tian (2008, p67-68) menambahkan bahwa tidak berbeda pada beberapa sistem
fisikal dan produk, manfaat dari testing adalah untuk meyakinkan bahwa software
systems bekerja sebagaimana diharapkan saat digunakan oleh user.
40
Karena fleksibilitas dari software, yang mana masalah dapat dibenahi dengan
lebih mudah daripada proses manufacturing tradisional atau produk fisikal dan
sistem, keuntungan ini dapat dimanfaatkan dari pengujian dengan membenahi
masalah yang teramati saat proses pengembangan. dengan demikian testing menjadi
sangat berarti untuk mendeteksi dan membenahi kecacatan software dalam
lingkungan pengembangan.
Sehingga dengan singkatnya testing memenuhi dua tujuan berikut ini :
• Mendemonstrasikan kualitas atau behaviour yang sesuai
• Mendeteksi dan membenahi masalah.
2.2.8.2 Aktivitas Utama Dalam Testing
Tian (2008, p68) menjabarkan aktivitas utama testing mengikuti langkah
kronologis berikut ini :
• Tes Planning and preparation, yang didalamnya menentukan sasaran dari testing,
memilih strategi testing, dan mempersiapkan test cases dan prosedur umum
pengujian.
• Test Execution dan aktivitas yang berhubungan, yang juga meliputi observasi dan
pengukuran dari product behaviour.
• Analysis and follow-up, yang meliputi pemeriksaan dan analisis untuk
menentukan jika kesalahan teramati, dan jika ada, aktivitas follow-up dilakukan
dan diawasi untuk memastikan penghilangan dari penyebab kesalahan.
41
2.2.8.3 Test Strategies Untuk WebApps
Strategi pengujian untuk WebApps mengadopsi prinsip dasar dari semua
software testing dan mengaplikasikan strategi dan taktik yang digunakan untuk sistem
object-oriented. Langkah-langkah berikut ini meringkaskan pendekatan strategi ini
(Pressman, 2010, p532) :
• Content model untuk WebApp ditinjau ulang untuk menemukan errors.
• Interface model ditinjau untuk memastikan bahwa semua usecase
terakomodasi.
• Design model untuk WebApp ditinjau untuk menemukan errors pada
navigasi.
• User Interface diuji untuk menemukan errors pada presentasi dan/atau
mekanika navigasi.
• Setiap komponen fungsi diuji
• Navigasi pada arsitektur diuji
• WebApp diaplikasikan pada lingkungan dengan konfigurasi yang berbeda
dan diuji untuk kecocokan pada setiap konfigurasi.
• Security test dilakukan untuk mengeksploitasi kerentanan dalam WebApp
itu.
• Performance test dilakukan
• WebApp diuji oleh end-users yang dikontrol dan diawasi.
2.2.8.4 Functional atau Black Box Testing (BBT)
42
Functional testing memverifikasi handling yang benar untuk external function
dari software. karena software diperlakukan seumpama black-box, dengan external
behaviour diamati lewat input, output, dan karakteristik yang dapat diamati lainnya,
maka testing ini sering disebut dengan black-box testing (BBT). (Tian 2008, p75)
Dari kutipan diatas, dapat disimpulkan bahwa black-box testing adalah pengujian
external behaviour dari sistem dengan menguji sistem lewat sekumpulan input dan
melihat output dari hasil proses input itu.
2.2.9 Interaksi Manusia Dan Komputer
Dalam Perancangan web application perlu dipertimbangkan interaksi manusia dan
komputer. Pembangunan aplikasi yang interaktif membutuhkan implementasi dasar dari
ilmu interaksi manusia dan komputer yang benar.
2.2.9.1 Usability Requirements
Interface yang efektif memberikan rasa positif akan sukses, kemampuan,
penguasaan, dan kejelasan pada komunitas User (user). (Shneiderman & Plaisant,
2010, p12)
Untuk mendapatkan sistem yang bersifat user-friendly perancang dapat fokus
pada sasaran-sasaran (goals) yang spesifik yang menyertakan system engineering
yang telah ditetapkan faktor manusia (human factors) yang terukur secara jelas.
U.S Military Standard for Human Engineering Design Criteria menambahkan :
43
• Peroleh performa yang dibutuhkan oleh operator, kontrol, dan personil
pemelihara (maintenance)
• Mnimalisir skill dan personel yang dibutuhkan saat waktu training
• Peroleh kehandalan (reliability) yang diperlukan oleh kombinasi personil-
perlengkapan
• Pelihara standarisasi perancangan pada keseluruhan system
Berikut ini adalah sasaran-sasaran (goals) yang ada dalam requirements analysis :
• Menentukan tugas
Langkah awal adalah mengetahui kebutuhan user, task dan subtask apa yang harus
diselesaikan. Tugas yang bersifat frequent atau sering dilakukan mudah ditentukan,
tetapi tugas-tugas yang bersifat occasional, tugas khusus untuk keadaan darurat, dan
tugas pembenahan error pada penggunaan interface lebih susah ditemukan.
• Pastikan ada kehandalan
Langkah kedua yang vital adalah memastikan sistem itu handal, action harus
berfungsi sebagaimana ditentukan, data yang ditampilkan harus merefleksikan isi dari
database, dan pembaharuan (updates) harus diaplikasikan secara benar. Kepercayaan
user pada sistem itu rapuh; jika user mengalami kejadian data yang salah atau hasil
yang tidak terduga dari sistem akan mengurangi keinginan user untuk menggunakan
sistem itu untuk waktu yang lama.
• Standarisasi, integrasi, konsistensi, dan protabilitas
44
Standarisasi mengacu ke user interface yang sudah umum dikenali, sehingga
memungkinkan user untuk memudahkan user untuk mengenali dan mempelajari
aplikasi.
Integrasi di seluruh paket aplikasi dan software tools adalah kunci dari prinsip
perancangan.
Konsistensi mengacu pada aksi umum urutan, kondisi, unit, susunan, warna,
typography, dan sebagainya pada keseluruhan aplikasi atau program.
Protabilitas sendiri mengacu ke potensi konversi data dan untuk memberikan user
interface pada beberapa lingkungan software dan hardware.
• Jadwal dan anggaran
Prencanaan matang dan manajemen yang tepat sangat dibutuhkan agar
pengembangan dapat diselesaikan tepat waktu dan dalam batasan anggaran yang
tepat.
2.2.9.2 Usability Measures
Perkiraan yang matang dari komunitas user dan patokan dari tugas-tugas adalah
basis untuk memungkinkan tercapainya sasaran pada masalah human factor.
Berikut ini adalah faktor-faktor pada pengukuran usability : (Shneiderman &
Plaisant, 2010, p32-33) :
45
• Waktu untuk belajar
Berapa lama waktu yang dibutuhkan untuk mempelajari penggunaan command
yang relevan dengan tugas-tugas yang dilakukan?
• Kecepatan performa
Berapa lama waktu yang diperlukan untuk menyelesaikan tugas-tugas patokan
(benchmark tasks)?
• Angka kesalahan (errors) dari user
Berapa banyak dan jenis error apa yang user lakukan biasanya saat mengerjakan
benchmark tasks?
• Daya ingatan jangka lama
Sebaik apa user dapat mempertahankan ingatan mereka setelah beberapa jam,
hari, atau minggu? Hal ini berhubungan dengan butir ke-1, yaitu waktu untuk
belajar.
• Kepuasan subjektif
Sepuas apakah user saat menggunakan sistem? wawancara atau survei tertulis
dapat dilakukan untuk melihat kepuasan subjektif ini.
2.2.9.3 Delapan Aturan Emas (8 Golden Rules)
Pengujian dan evaluasi akan dilakukan pada fase akhir pembangunan aplikasi.
Diharapkan dengan melakukan pengujian, defect dari aplikasi akan diketahui.
pengujian ini akan memakai metode Black Box Testing yang akan menitik beratkan
pada proses input-output.
46
Berikut ini adalah prinsip-prinsip yang sudah diturunkan dari pengalaman dan
diperhalus dalam dua dekade lebih. (Shneiderman , 2010, p88-89) :
• Berusaha untuk konsisten
Pentingnya bagi antarmuka pemakai untuk tetap konsisten agar user tidak
kebingungan dalam mencari sebuah informasi. Contoh, tampilan layar harus
konsisten dari yang satu dengan yang lainnya.
• Melayani usabilty universal
Mengenali kebutuhan pengguna yang beragam dan desain untuk plasticity,
memfasilitasi transformasi pemberitahuan konten ke perbedaan ahli, rentang usia,
cacat, dan keragaman masingmasing teknologi memperkaya spektrum persyaratan
desain panduan itu. Menambahkan fitur bagi para pemula, seperti penjelasan, dan
fitur untuk para ahli, seperti shortcut dan aksi balik lebih cepat, dapat
memperkaya desain antarmuka dan meningkatkan persepsi kualitas sistem.
• Berikan umpan balik (feedback) yang informatif
Untuk setiap user melakukan aksi, maka harus ada umpan balik agar membuat
user menjadi terarah dan tidak tersesat dalam pencarian informasi.
• Merancang dialog yang memberikan penutupan (Keadaan akhir).
Berinteraksi dengan komputer sama seperti berdialog. Aksi yang berurutan harus
diorganisasi dan memiliki awal, tengah, maupun akhir. Penting bagi user untuk
mengetahui kapan aksi tersebut berakhir. Umpan balik yang informatif pada saat
sekumpulan aksi telah dilakukan memberikan user suatu kepuasan, rasa lega, dan
indikasi bahwa user boleh melakukan aksi yang selanjutnya.
• Mencegah Terjadinya Error
47
Sebanyak mungkin menghindari kesalahan pada perancangan sistem sehingga
pengguna tidak dapat membuat kesalahan serius, misalnya field item yang harus
diisi oleh user yang tidak mengizinkan karakter abjad dalam pengisian data
numerik. Jika user membuat kesalahan, interface harus mendeteksi kesalahan dan
menawarkan instruksi sederhana, konstruktif, dan khusus untuk proses perbaikan
kesalahan. Misalnya, user tidak perlu mengetik
ulang bentuk seluruh nama-alamat jika mereka memasukkan kode pos tidak valid,
melainkan harus diarahkan untuk memperbaiki.
• Mungkinkan adanya aksi pembalikan yang mudah (Undo)
User harus dapat kembali pada aksi yang telah dilakukan sebelumnya, baik itu ada
kesalahan maupun tidak.
• Mendukung pusat kendali internal.
Kepuasan user akan tinggi jika user merasakan bahwa dia telah memegang
kendali sedangkan kepuasan user akan rendah jika komputer yang memegang
kendali.
• Mengurangi beban ingatan jangka pendek.
Ingatan jangka pendek manusia sangatlah terbatas. Lakukan apa saja yang
memungkinkan user tidak perlu mengingat apa pun. Sebagai contoh, daripada
meminta unser untuk mengetik nama file yang akan diterima, lebih balik apabila
user diminta untuk menampilkan daftar dari file yang tersedia.