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 masingmasing 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
Message
Menggambarkan durasi/lamanya pengerjaan sebuah pesan (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
Menggambarkan penghancuran dari
Message
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 : tugastugas 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 benarbenar 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 personilperlengkapan
•
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.