BAB 2 LANDASAN TEORI
2.1 Teori Umum 2.1.1
Database Design Menurut Connolly dan Begg (2005, p291), Database Design merupakan sebuah proses menciptakan sebuah rancangan yang mendukung visi dan misi perusahaan untuk sebuah sistem basis data. Perancangan basis data dibagi menjadi tiga tahap utama, yaitu conceptual database design, logical database design dan physical database design. 2.1.1.1 Conceptual Database Design Menurut Connolly dan Begg (2005, p293), tahap awal perancangan basis data ini merupakan proses membangun sebuah model data-data yang digunakan dalam perusahaan, yang tidak bergantung pada segala pertimbangan fisikal. 2.1.1.2 Logical Database Design Menurut Connolly dan Begg (2005, p294), Logical Database Design, tahap kedua dalam perancangan basis data, merupakan proses membangun sebuah model data yang digunakan oleh perusahaan berdasarkan sebuah model data spesifik tapi tidak bergantung pada DBMS tertentu dan pertimbangan fisik lainnya. 2.1.1.3 Physical Database Design Menurut Connolly dan Begg (2005, p294), Physical Database Design merupakan tahap ketiga dan terakhir dalam proses perancangan basis data di mana pada tahap ini perancang menentukan bagaiman database akan diimplementasikan. Tahap ini berupa proses memproduksi sebuah deskripsi implementasi database pada penyimpanan sekunder, yang menjelaskan relasi dasar, organisasi file dan indeks yang digunakan untuk mencapai keefisiensi 5
6
pengaksesan data dan batasan integritas, serta pengukuran keamanan lainnya yang berhubungan.
2.1.2
Entity Relationship Diagram (ERD) Menurut Connolly dan Begg (2005, p445), Entity Relationship Diagram digunakan untuk menggambarkan hubungan antar entitas, karena lebih mudah memvisualisasikan spesifikasi kebutuhan pengguna untuk sebuah sistem yang kompleks dibandingkan harus menguraikannya dalam bentuk deskripsi tertulis yang panjang.
2.1.3
The XP Process Menurut menggunakan
Pressman
pendekatan
(2010,
p73),
berorientasi
Pemrograman
objek
sebagai
ekstrim paradigma
pengembangan dan mencakup kumpulan aturan dan latihan yang hadir dalam empat framework aktifitas yaitu: planning, design, coding dan testing.
Gambar 2.1 The XP Process (Pressman 2010, p73)
7
1. Planning Tahap ini para software engineer mengumpulkan informasi mengenai kebutuhan pengguna terhadap sistem yang akan dikembangkan lalu kemudian menjabarkan tugas teknikal yang harus dilakukan, pembagian tugas antar anggota, resiko apa saja yang akan dihadapi, sumber daya yang akan dibutuhkan, apa yang akan dihasilkan dan jadwal pembuatan perangkat lunak. Pada tahap ini, penggguna dapat menambahkan, merubah aaupun menghilangkan kebutuhan sistem yang diinginkan. 2. Design Sistem yang akan dibangun dibuat perancangannya dengan mengikuti panduan KIS (Keep It Simple!), di mana hasil perancangan menyajikan fungsi-fungsi yang dibutuhkan oleh pengguna saja, tidak lebih dan tidak kurang. 3. Coding Sistem yang akan dibangun dibagi ke beberapa unit yang akan diuji, setelah coding untuk masing-masing unit telah selesai dikerjakan, akan langsung dikomunikasikan dengan pengguna untuk mendapatkan feedback. 4. Testing Pada tahap ini sistem yang dibangun akan diuji berdasarkan masing-masing komponen yang terkandung, dimulai dari komponen antarmuka, struktur data, fungsi sistem untuk menemukan kesalahan karena lebih baik memperbaik kesalahan-kesalahan kecil di awal daripada kesalahan besar menjelang deadline. Dilakukan juga acceptance test atau customer test terhadap keseluruhan sistem yang dibuat, apakah sudah sesuai dengan kebutuhan pengguna agar siap dirilis.
2.1.4
Unified Modeling Language (UML) Menurut Britton dan Doake, (2005, p13), Unified Modeling Language (UML) adalah satu kumpulan teknik diagram, yang dirancang secara
8
khusus untuk pengembangan berorientasi objek, dan telah menjadi standar industri untuk pemodelan sistem berorientasi objek. 2.1.4.1
Use-Case Diagram Menurut Britton dan Doake, (2005, p40) Use-Case Diagram adalah diagram yang secara grafis menggambarkan interaksi antara user dengan sistem. Sebuah use-case diagram umumnya mengandung simbolsimbol sebagai berikut:
Gambar 2.2 Daftar Simbol Use Case Diagram (Britton dan Doake 2005, p41) 2.1.4.2
Use Case Description Menurut Britton dan Doake (2005, p45), Use Case
Description adalah sebuah dokumen narasi yang menjelaskan secara umum fungsi yang diperlukan sebuah usecase dan secara khusus menjelaskan tujuan dari usecase tersebut dan memberikan deksripsi umum mengenai yang biasa terjadi.
9
2.1.4.3
Class Diagram Menurut Britton dan Doake (2005, p117), Classs Diagram merupakan pusat dari analisa dan perancangan berorientasi objek karena telah menggambarkan keseluruhan arsitektur sistem – keseluruhan stuktur sistem dan struktur setiap objek yang terdapat di dalam sistem.
2.1.4.4
Sequence Diagram Menurut Britton dan Doake, (2005, p156) Sequence Diagram menggambarkan dengan jelas dan sederhana arus kontrol antar objek yang diperlukan untuk melaksanakan skenario. Sebuah skenario menguraikan urutan langkah-langkah dalam satu contoh use-case dari layar komputer sisi pengguna, sequence diagram menunjukkan bagaimana langkah-langkah tersebut diterjemahkan kedalam pesan antar objek di komputer.
2.1.4.5
Activity Diagram Menurut Britton dan Doake, (2005, p201) Activity Diagram menggambarkan secara detail proses yang kompleks. Dalam activity diagram, semua state adalah aktivitas, dan semua transisi diantaranya, dipicu oleh selesainya sebuah aktivitas, bukan oleh sebuah peristiwa eksternal. Berikut merupakan elemen yang digunakan dalam diagram activity diagram :
Gambar 2.3 Daftar Simbol Activity Diagram (Britton dan Doake 2005, p203)
10
2.1.5
Interaksi Manusia dan Komputer (IMK) 2.1.5.1
Pengertian IMK Menurut Shneiderman dan Plaisant (2010, p22), interaksi manusia dan komputer adalah disiplin ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer interatif untuk digunakan oleh manusia, serta studi fenomena-fenomena besar yang berhubungan dengannya.
2.1.5.2
Eight Golden Rules Menurut Shneiderman dan Plaisant (2010, p88), “Eight Golden Rules” terdiri dari : a. Berusaha untuk konsisten (strive for consistency) Berusaha membuat urutan yang konsisten dari tindakan yang diperlukan dalam situasi yang sama. Tata letak, kapitalisasi, font, warna yang digunakan semua harus konsisten. b. Melayani kegunaan universal (cater to universal usability) Melayani
kebutuhan
pengguna
yang
beragam
dan
memfasilitasi transformasi konten. Menambahkan fitur untuk pemula seperti penjelasan, dan fitur untuk para ahli, seperti shortcut dapat memperkaya desain antarmuka dan meningkatkan kualitas sistem. c. Umpan balik yang informatif (offer informative feedback) Untuk setiap tindakan yang dilakukan user harus terdapat umpan balik dari sistem. Untuk tindakan yang sering dan kecil, umpan balik yang diberikan akan sederhana, sedangkan untuk tindakan yang jarang dan besar, umpan balik yang diberikan harus lebih substansial. d. Desain dialog yang menghasilkan penutupan (designing dialogs to yield closure) Urutan tindakan harus memiliki awalan, tengah, dan akhiran. Umpan balik informatif pada penyelesaian tindakan, dapat
11
memberikan indikator untuk mempersiapkan tindakan selanjutnya. e. Mencegah kesalahan (prevent errors) Merancang suatu sistem yang mencegah user membuat suatu kesalahan yang serius. Jika user membuat kesalahan, antarmuka
harus
dapat
mendeteksi
kesalahan,
dan
menawarkan instruksi sederhana, konstruktif, dan spesifik untuk pemulihan. f. Memungkinkan tindakan pembalikan yang mudah (permit easy reversal of actions) Tindakan yang dilakukan harus dapat kembali ke tindakan sebelumnya. Fitur ini mengurangi kecemasan karena user tahu
bahwa
kesalahan
tidak
dapat
dibatalkan,
dan
mendorong eksplorasi pilihan asing. g. Dukungan pusat kendali internal (support internal locus of control) User yang berpengalaman menginginkan sensasi bahwa mereka bertanggung jawab atas antarmuka dan antarmuka menanggapi tindakan mereka. h. Mengurangi beban ingatan jangka pendek (reduce shortterm memory loss) Manusia yang memiliki kapasitas terbatas untuk memproses informasi dalam ingatan
jangka pendek, mengharuskan
desainer menghindari antarmuka dimana pengguna harus mengingat informasi dari satu layar, dan kemudian menggunakan informasi tersebut pada layar yang lain.
12
2.2 Teori Khusus 2.2.1
Tourism Menurut Khairil Wahidin Awang dalam jurnalnya yang berjudul “Tourism Development: A Geographical Perspective” (2009, p67), tourism atau pariwisata memiliki pengertian majemuk: sebuah komponen rekreasi, sebuah studi mengenai manusia yang pergi dari habitat asalnya untuk merespon kebutuhannya, kumpulan wisatawan yang tidak menetap ke sebuah area tujuan tertentu (hanya singgah, tidak menjadi penduduk permanen). (Anonymous1, 2013) Pariwisata, sebagai sebuah fenomena ekonomi dan social memiliki kontribusi penting dalam pertumbuhan ekonomi mengingat jumlah bisnis wisata saat ini semakin berkembang.
2.2.2
Travel (Anonymous2, 2014) Travel atau dalam bahasa Indonesia dikenal dengan sebutan perjalanan, adalah sebuah pergerakan manusia antara lokasi-lokasi yang secara geografis berjarak relatif dan dalam pelaksanaannya bisa dengan menggunakan kereta, perahu, pesawat terbang, berjalan kaki dan lain-lain semcamanya, dengan atau tanpa bagasi bawaan. Travel atau perjalanan ini dapat berlangsung dalam sekali jalan atau pulang-pergi. (Anonymous3, 2014) Umumnya, travel atau perjalanan ini dilakukan dengan alasan untuk rekreasi, pariwisata, liburan, perjalanan penelitian, untuk kunjungan seseorang, relawan amal, migrasi, perjalanan bisnis dan alasan lainnya seperti untuk medikasi kesehatan, mengetahui dan mempelajari budaya lain atau melarikan diri dari perang.
2.2.3
PHP Menurut Valade, (2006, p15), PHP merupakan scripting language yang dirancang untuk membuat web dinamis. Kata PHP berasal dari PHP: HyperText Preprocessor yang dikembangkan oleh Rasmus Lerdorf.
13
(Anonymous4, 2012), PHP digunakan secara luas dalam bahasa script yang sangat cocok digunakan untuk pengembangan web dan dapat ditanamkan dalam HTTP.
2.2.4
CodeIgniter (CI) (Anonymous6, 2012), Code Igniter merupakan application development framework, sebuat alat untuk membantu dalam pembuatan website yang menggunakan PHP. Tujuan dari Code Igniter adalah membantu dalam pembuatan project agar dapat lebih cepat bila membuat code dari awal, dengan cara menyediakan library – library yang dapat memudahkan tugas – tugas yang ada, serta antar muka yang mudah dan struktur logikal untuk mengakses library tersebut.
2.2.5
PHPMyAdmin (Anonymous7, 2012), phpMyAdmin merupakan software gratis yang ditulis dalam bahasa PHP, yang bertujuan untuk memegang administrasi dari MySQL dari World Wide Web (WWW). PhpMyAdmin mendukung sebagian besar operasi pada MySQL. Operasi yang sering digunakan sudah didukung dengan user interface seperti mengatur database, table, field, relasi, index, users, permissions, dll, tapi tetap mempunyai kemampuan untuk mengeksekusi SQL statement secara langsung.
2.2.6
JavaScript Menurut Flanagan, (2011, p1), JavaScript merupakan bahasa pemrograman tingkat tinggi dan dinamis yang cocok untuk object oriented dan functional programming style. JavaScript berasal dari sintaks Java, yang merupakan bahasa pemrograman yang digunakan sebagian besar website modern dan web browser baik dalam desktop, game console, tablet, dan smart phone. JavaScript merupakan bagian dari serangkaian teknologi yang wajib dipelajari bagi Web Developer: HTML untuk menentukan isi dari setiap halaman web, CSS untuk menentukan
14
presentasi dari web, dan JavaScript untuk menentukan tindakan dari halaman web.
2.2.7
AJAX Menurut Phaneendra dalam jurnal “Minimizing Client-Server Traffic Based On AJAX”, (2012, p11), Ajax bukanlah arsitektur seperti MVC, atau pola desain, atau kerangka melainkan konsep. Ajax lebih dari sekedar pendekatan untuk interaksi web. Pendekatan ini melibatkan transmisi dari sejumlah kecil informasi dari dan ke server untuk memberikan user respon yang paling mungkin. Ajax bermanfaat bagi mereka yang telah menerapkan arsitektur MVC seperti aplikasi shopping cart.
2.2.8
JQUERY (Anonymous8, 2012), JQuery merupakan library JavaScript yang cepat dan ringkas, yang menyederhanakan lintas dokumen HTML, penanganan kejadian, dan interaksi Ajax untuk pengembangan web yang cepat dan interaktif. (Anonymous9,
2014)
JQuery
dirancang
untuk
mengubah
dan
memudahkan cara menulis JavaScript. JQuery mudah untuk dipelajari.
2.2.9
MVC Menurut Pitt (2012, p1), MVC (Model-View-Controller) adalah sebuah pola merancang perangkat lunak yang dibangun sekitar hubungan tiga tipe komponen utama yaitu model, view dan controller. Model adalah tempat semua logika bisnis sebuah aplikasi disimpan. Sedangkan view adalah tempat semua elemen antarmuka aplikasi disimpan dan controller adalah komponen yang menghubungkan model dan view bersamaan.
15
2.2.10 User Aceptance Test Menurut Hambling dan Goethem (2013, p15), User Acceptance Test (UAT) merupakan tahap akhir pengujian perangkat lunak pada pengguna
yang
dilakukan
sebelum
perangkat
lunak
tersebut
diperkenalkan kepada sebuah organisasi. Tujuan utamanya adalah untuk memastikan sistem yang baru melakukan apa yang telah ditetapkan dan memenuhi kebutuhan bisnis yang dibutuhkan. (Janssen, 2010) Ada beberapa tahap dalam melakukan User Acceptance Test yaitu: a. Planning: merencanakan strategi pelaksanaan UAT b. Designing Test Cases: Bentuk pengujian pada tahap ini dirancang agar mencakup keseluruhan fungsi-fungsi sistem yang dibutuhkan pengguna. Pengujian tersebut dirancang dengan menggunkan bahasa yang sederhana agar mudah dimengerti dan tutur kata agar proses pengujian dapat berjalan lebih mudah bagi para pengguna. c. Selection of testing team: pemilihan pengguna yang dijadikan sasaran proses pengujian yangmana merupakan pengguna akhir pada dunia nyata. d. Executing test cases & documenting: bentuk pengujian yang telah dirancang diterapkan secara langsung terhadap pengguna yang telah menjadi sasaran sebelumnya. e. Bug fixing: menanggapi kesalahan-kesalahan yang ditemukan oleh pengguna dalam proses pengujian dengan tujuan agar code sistem yang dibuat bug-free. f. Sign off: ketika semua kesalahan yang ditemukan telah diperbaiki, pengguna diindikasikan telah menerima sistem yang dibuat karena sudah menunjukan telah memenuhi kebutuhan pengguna dan siap dikembalikan ke perusahaan untuk ditindak lanjuti.
16
2.2.11 YSlow (Anonymous10, 2013) YSlow menganalisa dan mengukur kinerja halaman web dengan menganalisa semua komponen yang terkandung di dalamnya termasuk komponen yang secara dinamis dibuat menggunakan JavaScript, serta memberikan penawaran solusi untuk peningkatan kinerja. Beberapa platform yang mendukung berjalannya YSlow diantaranya adalah Firefox, Chrome, Mobile/Bookmarklet, Opera, Safari, Command Line, PhantomJS, Node js Server dan Source Code. YSlow bekerja melalui tiga fase untuk mencapai hasilnya yaitu: 1. YSlow menyelusuri DOM untuk menemukan semua komponen yang ada di dalam sebuah website 2. YSlow pada tahap ini akan menemukan informasi-informasi mengenai setiap komponen 3. YSlow mengambil semua data yang ada di halaman dan mengolah nilai untuk masing-masing komponen untuk menggapai nilai akhir keseluruhan berdasarkan aturan. Ada beberapa aturan yang menjadi patokan nilai YSlow yaitu: • Buat HTTP Request lebih sedikit
• Kurangi pengecekan DNS • Minimalisir JS & CSS
• Gunakan CDN
• Hilangkan duplikasi JS & CSS
• HIndari src atau href yang
• Konfigurasi ETags
kosong • Tambahkan sebuah header penutup (footer)
• Buat AJAX dapat disimpan cache • Kurangi jumlah elemen DOM • Tiadakan 404
• Kompres komponen
• Jangan neskala gambar di HTML
• Letakkan CSS di awal
• Buat ikon favorit yang kecil dan
code • Letakkan JavaScript di akhir code • Buat JS & CSS external
dapat disimpan cache