BAB II LANDASAN TEORI
2.1 Pengertian Rekayasa Perangkat Lunak Menurut Pressman, (2005, P36), perangkat lunak (software) adalah: 1.
Instruksi (program komputer) yang ketika dieksekusi menampilkan fungsi dan performa yang diinginkan;
2.
Struktur-struktur data yang memungkinkan program untuk memanipulasi informasi;
3.
Dokumen-dokumen yang mendefinisikan operasi dan penggunaan suatu program.
Sedangkan menurut Lethbridge etal, (2002, P5), rekayasa perangkat lunak adalah sebuah proses pemecahan masalah dengan pengembangan sistematik dan evolusi dari besar, sistem software yang berkualitas secara biaya, waktu, dan batasan lainnya.
2.2 Pengertian Internet, Intranet, dan Web Menurut Connolly, (2005, P994), internet adalah sebuah koleksi atau sekumpulan informasi dari berbagai belahan dunia yang terhubung satu sama lain di dalam jaringan komputer. Intranet adalah sebuah situs web atau situs grup dari organisasi yang hanya dapat diakses oleh member dari organisasi tersebut. Web adalah sistem berbasis hypermedia yang menyediakan sarana pencarian informasi pada internet dengan cara non-sekuensial menggunakan hyperlinks.
7
2.3 Teori Pemesanan Menurut Kotler etal (2010, P203), pemesanan adalah sebuah keputusan final dengan memilih supplier tertentu, dengan mempertimbangkan spesifikasi teknis, kuantitas yang diperlukan, ketepatan waktu pengiriman, kebijakan pengembalian, dan garansi dari barang yang dipesan.
2.4 Teori Penjualan Menurut Futrell, (2009, P5), penjualan adalah komunikasi informasi personal untuk meyakinkan pelanggan untuk membeli sesuatu – sebuah barang, jasa, ide, atau lainnya – yang memuaskan kebutuhan individu. Definisi penjualan melibatkan seseorang untuk membantu orang lain. Orang yang dimaksudkan adalah sales. Seorang sales bekerja untuk memenuhi kebutuhan, menyediakan informasi, memberikan saran terhadap produk yang sesuai dengan kebutuhan, dan menyediakan pelayanan jangka panjang untuk memastikan kepuasan pelanggan. Definisi lain melibatkan komunikasi antara penjual dan pembeli. Seorang sales dan pembeli melakukan diskusi tentang kebutuhan pelanggan, dan memberikan masukan bagaimana produk yang akan dibeli
dapat memuaskan kebutuhan dari
pelanggan. Kebanyakan orang menganggap bahwa seorang sales hanya melakukan presentasi produk, akan tetapi ada beberapa tugas lain yang harus dilakukan di luar penjualan secara person-to-person. Fungsi dari seorang sales adalah sebagai manajer teritorial, yang bertugas melakukan kegiatan perencanaan, organisasi, mengeksekusi kegiatan untuk meningkatkan penjualan dan keuntungan dalam lingkup teritorial tertentu.
8
Teritorial penjualan meliputi sebuah grup pelanggan yang dikelompokkan berdasarkan area tertentu. Menurut Futrell, (2009, P24), sebagai manajer teritorial, seorang sales menjalankan sembilan fungsi, antara lain: 1. “Membuat” pelanggan baru Dengan tujuan untuk meningkatkan penjualan dan kemungkinan mengganti pelanggan lama, seorang sales diharapkan melakukan prospek ke pelanggan baru. Prospek yang dimaksud merupakan inti dari penjualan, karena kegiatan itu dapat menghasilkan pelanggan yang potensial untuk membeli produk/ jasa. 2. Menjual lebih kepada pelanggan baru Penjualan hari esok didapat dari penjualan terhadap pelanggan baru dan penjualan terhadap pelanggan hari ini. 3. Jalin hubungan jangka panjang dengan pelanggan Untuk menjual lebih banyak produk kepada pelanggan, sales harus mempunyai relasi yang baik dengan pelanggan, sehingga pelanggan akan lebih mempercayai produk/jasa yang ditawarkan. 4. Menyediakan solusi terhadap permasalahan pelanggan Sales diharapkan dapat menemukan masalah yang mungkin dihadapi pelanggan dan menunjukkan bagaimana memanfaatkan produk/jasa yang ditawarkan dapat memuaskan kebutuhan ataupun mengatasi masalah.
9
5. Menyediakan pelayanan kepada pelanggan Sales melakukan pelayanan dalam bentuk menangani pengaduan, mengganti barang yang rusak, menyediakan contoh barang (sample), dan memberi rekomendasi bagaimana pelanggan dapat mempromosikan barang yang dibeli. 6. Membantu pelanggan menjual kembali barang kepada pelanggan Salah satu bagian dari tugas sales adalah membantu wholesaler dan retailer menjual kembali produk yang dibelinya dari sales. Sales membantu wholesaler menjual kembali barangnya kepada retailer, dan membantu retailer menjual kembali barangnya kepada pelanggan. 7. Membantu pelanggan menggunakan produk yang dibelinya Tidak jarang sales diminta untuk menunjukkan kegunaan atau keuntungan dari produk/jasa yang ditawarkan. Misalnya, setelah seorang pelanggan membeli sebuah komputer, pelanggan meminta bantuan kepada teknisi untuk membantu menjalankan komputer tersebut. 8. Membangun relasi yang baik dengan pelanggan Sales diharapkan mengembangkan relasi yang baik dengan pelanggan untuk bisa mempengaruhi pelanggan untuk membeli barang/jasa yang ditawarkan. 9. Menyediakan informasi pasar Sales menyediakan informasi seperti aktivitas kompetitor, reaksi pelanggan terhadap produk, pengaduan terhadap produk, dan market opportunity. Informasi-informasi tersebut digunakan sales untuk membuat laporan kepada perusahaan.
10
2.5 Struktur Kontrol Dasar Menurut Robertson (2006, P15-17) teorema Struktur memberikan perubahan mendasar terhadap desain program dengan membuat sebuah framework terstruktur untuk merepresentasikan sebuah algoritma solusi. Teorema Struktur menyatakan bahwa mungkin untuk menulis program komputer dengan menggunakan tiga struktur kontrol dasar yang dapat direpresentasi dengan mudah dalam pseudocode. Ketiga struktur kontrol dasar tersebut adalah: Sekuensial, seleksi, dan repetisi.
2.5.1 Sekuensial Kontrol ini adalah eksekusi berkelanjutan antara satu statement dengan statement lainnya. Di dalam pseudocode, konstruksi ini direpresentasikan sebagai berikut: statement a statement b statement c Kontrol ini biasanya dipergunakan untuk menerima dan mengeluarkan informasi, melakukan operasi aritmetika dan menempatkan nilai.
2.5.2 Seleksi Kontrol ini merepresentasikan kondisi dilakukannya proses pemilihan antara dua aksi, di mana hasil berdasarkan nilai true dan false. Di dalam pseudocode, seleksi direpresentasikan dengan keyword IF, THEN, ELSE, dan ENDIF. Di dalam pseudocode, konstruksi ini direpresentasikan sebagai berikut:
11
IF condition p is true THEN Statement(s) in true case ELSE Statement(s) in false case ENDIF
2.5.3 Repetisi Kontrol ini dapat didefinisikan sebagai kumpulan instruksi yang dikerjakan secara berulang selama kondisinya true. Di dalam pseudocode, konstruksi ini direpresentasikan sebagai berikut: DOWHILE condition p is true Statement block ENDDO
2.6 Rapid Application Development (RAD) Menurut Bentley etal (2007, P98), Rapid Application Development (RAD) adalah
sebuah
strategi
pengembangan
sistem
yang
menekankan
kecepatan
pengembangan melalui keterlibatan pengguna yang ekstensif dalam konstruksi, cepat, berulang, dan bertambah serangkaian prototype bekerja dalam sebuah sistem yang pada akhirnya berkembang ke dalam sistem final (atau sebuah versi). Prototype adalah sebuah model skala kecil, representatif, atau bekerja dari persyaratan pengguna atau desain yang diusulkan untuk sebuah sistem informasi. Prototipe apapun mungkin menghilangkan fungsi-fungsi atau fitur-fitur tertentu sampai
12
saat prototipe tersebut cukup berkembang menjadi implementasi persyaratan yang dapat diterima Prinsip dasar prototyping adalah para pengguna mengetahui apa yang mereka inginkan ketika mereka melihatnya bekerja. Durasi perulangan prototyping dapat dibatasi dengan menggunakan sebuah teknik yang disebut "timeboxing". Timeboxing adalah pembebanan periode waktu yang tidak dapat diperpanjang, biasanya 60 sampai dengan 90 hari, yang versi sistem pertama (atau selanjutnya) harus dikirimkan ke operasi. Berikut adalah tahapan dalam rapid application development.
13
Gambar 2.1 Tahapan Rapid Application Development
14
1. Penekanan waktu dilakukan dalam pengembangan aplikasi dan sistem. Oleh karena itu, fase analisis masalah, kebutuhan, dan keputusan di awal digabung dan dipercepat. Setelah analisis di atas, RAD juga melakukan pendekatan secara berulang. 2. Desain spesifik logika dan fisik biasanya disingkat dan dipercepat. Dalam setiap langkah pengulangan, hanya sebagian dari desain spesifik yang akan dipertimbangkan. 3. Terkadang dalam pengulangan, beberapa proses bisnis harus dirancang ulang agar dapat terintegrasi dengan pengembangan aplikasi. 4. Di dalam setiap pengulangan, elemen dari beberapa desain prototype dan/ atau sebagian sistem kerja dibuat dan diuji. Pada akhirnya, aplikasi yang lengkap akan dihasilkan oleh pengulangan terakhir dari lingkaran. 5. Setelah setiap beberapa desain prototype dan/ atau sebagian sistem kerja dibuat dan diuji, pengguna sistem diberikan kesempatan untuk bekerja dengan prototype. Harapannya adalah pengguna akan mengklarifikasi kebutuhan dan mengidentifikasi kebutuhan baru, dan menyediakan proses bisnis baru sebagai umpan balik pada rancangan, untuk pengulangan selanjutnya dalam tahapan RAD. 6. Setelah setiap prototype dan/ atau sistem kerja dibuat dan diuji, sistem analisis dan desainer akan meninjau arsitektur aplikasi dan desain yang disediakan untuk umpan balik teknis dan arah untuk tahapan pengulangan selanjutnya dalam lingkaran RAD.
15
7. Berdasarkan
dari
umpan
balik,
sistem
analis
akan
mengidentifikasi
pengembangan sistem secara objektif yang lebih bagus dan/ atau kebutuhan bisnis. Analisis ini lebih terfokus pada perbaikan atau pengembangan objektif dan kebutuhan dan identifikasi perhatian pengguna dengan sistem. 8. Berdasarkan dari umpan balik, sistem analis dan sistem desainer akan mengidentifikasi arsitektur aplikasi yang lebih bagus dan/ atau perubahan desain 9. Pada akhirnya, sistem akan dianggap berharga untuk diimplementasi. Kandidat versi dari sistem fungsional yang akan dirilis ini adalah sistem yang telah diuji dan dimasukkan ke dalam operasi. Versi selanjutnya akan diulangi dalam lingkaran RAD yang selanjutnya.
2.6.1 Gagasan-gagasan Dasar RAD Gagasan-gagasan Dasar RAD antara lain: - Lebih aktif melibatkan para pengguna sistem dalam aktivitas analisis, desain, konstruksi. - Mengorganisasikan pengembangan sistem ke dalam rangkaian kerja yang intensif dan terfokus yang melibatkan pemilik, pengguna, analis, desainer, dan pembangun sistem. - Mengakselerasi fase-fase analisis dan desain persyaratan melalui pendekatan konstruksi berulang. - Mempersingkat waktu yang diperlukan sebelum pengguna mulai dapat melihat sistem yang bekerja.
16
2.6.2 Keunggulan dan Kelemahan RAD Keunggulan: -
Berguna untuk proyek yang kebutuhan pengguna tidak pasti dan tidak tepat.
-
Mendorong pengguna aktif dan partisipasi manajemen (berkebalikan dengan reaksi pasif pada model-model sistem yang tidak bekerja). Hal ini meningkatkan antusiasme pengguna akhir pada proyek.
-
Proyek-proyek memiliki visibilitas dan dukungan lebih tinggi karena keterlibatan pengguna yang ekstensif selama proses.
-
Pengguna dan pihak manajerial melihat pekerjaan, solusi yang berbasis perangkat lunak bekerja lebih cepat daripada pengembangan yang model-driven.
-
Error dan kelalaian cenderung untuk dideteksi lebih awal dalam prototipe daripada dalam model sistem.
-
Pengujian dan pelatihan adalah produk tambahan alami dari pendekatan prototyping yang mendasar.
-
Pendekatan berulang adalah proses yang lebih "alami" karena perubahan adalah faktor yang diharapkan selama pengembangan.
Kelemahan: -
Pendapat bahwa RAD mendorong mentalitas “code,implement, and repair”, yang meningkatkan biaya yang diperlukan untuk operasi, pendukungan, dan perawatan sistem.
-
Prototipe RAD dapat dengan mudah memecahkan masalah yang salah karena analisis masalah yang singkat atau diabaikan.
17
-
Prototipe berbasis RAD mungkin membuat analis berkecil hati untuk mempertimbangkan, alternatif teknis lain yang lebih bernilai
-
Terkadang lebih baik membuang sebuah prototipe, tetapi para stakeholder sering enggan melakukannya, karena mereka menganggapnya sebagai kehilangan waktu dan usaha dalam produk saat ini.
-
Penekanan pada kecepatan dapat berefek buruk terhadap kualitas, yang disebabkan jalan pintas yang disarankan dengan buruk melalui metodologi tersebut.
2.7 Data Flow Diagram (DFD) Menurut Bentley etal (2007, P317), Data Flow Diagram (DFD) adalah alat yang menggambarkan aliran data melalui sistem dan kinerja kerja atau pengolahan yang dilakukan oleh sistem tersebut. Terdapat tiga simbol dan satu koneksi dalam DFD, simbol dan koneksi yang dimaksud adalah sebagai berikut. • Persegi panjang bersudut tumpul menyatakan proses atau bagaimana tugas dikerjakan • Persegi panjang menyatakan agen eksternal yang merupakan batasan dari sistem tersebut • Kotak dengan ujung terbuka menyatakan data store, biasa disebut dengan file atau database. Data store ini berhubungan dengan semua contoh entitas tunggal dalam model data • Panah menyatakan aliran data, input dan output, ke dan dari proses tersebut
18
Menurut Bentley etal (2007, P372), context data flow diagram adalah sebuah model proses yang digunakan untuk mendefinisikan lingkup dari sistem.
2.8 Entity Relationship Diagram (ERD) Menurut Bentley etal (2007, P271) Entity Relationship Diagram (ERD) , merupakan suatu model aktual, karena model ini menjelaskan data dalam konteks entitas dan hubungan yang digambarkan oleh data tersebut. Berikut adalah konsep dasar yang mendasari pemodelan data. 1. Entitas Kita membutuhkan sebuah konsep untuk menunjukkan secara abstrak semua contoh dari kelompok hal-hal yang serupa. Kita menyebut konsep ini suatu entitas. Menurut Bentley (2007,P271) entitas adalah sesuatu yang diperlukan bisnis untuk menyimpan data. Sedangkan menurut Connolly (2005,P15) entitas adalah suatu objek terpisah dalam organisasi, yang direpresentasikan dalam database. 2. Atribut Menurut Bentley etal (2007,P272) atribut adalah identifikasi bagian data spesifik yang ingin kita simpan dari setiap entitas tertentu. Sedangkan menurut Connolly (2005,P15) atribut adalah sifat yang mendeskripsikan objek. Macam-macam tipe data ditampilkan dalam tabel berikut.
19
Tabel 2.1 Tabel Tipe Atribut Tipe Data Arti NUMBER
Tiap bilangan, riil atau integer
TEXT
String karakter, termasuk bilangan, saat bilangan dimasukkan dalam atribut TEXT, berarti kita tidak dapat melakukan aritmetika atau perbandingan dengan bilangan tersebut.
MEMO
Sama dengan TEXT, tetapi ukurannya tidak menentu. Beberapa sistem bisnis membutuhkan kemampuan untuk melampirkan catatan panjang pada suatu record database.
DATE
Tanggal dalam berbagai format.
TIME
Waktu dalam berbagai format.
YES/NO
Atribut hanya dapat mengambil salah satu dari dua nilai ini.
VALUE
Set nilai tertentu. Dalam banyak kasus, akan dibentuk skema
SET
pengkodean.
IMAGE
Berisikan gambar.
3. Relationship Secara konseptual, entitas dan atribut tidak terpisah. Hal yang dinyatakannya saling berinteraksi dan mempengaruhi untuk mendukung tujuan bisnis. Jadi, kita memperkenalkan konsep hubungan. Menurut Bentley etal (2007,P275) relationship adalah hubungan bisnis alami yang ada di antara satu atau lebih entitas. Hubungan tersebut dapat menyatakan kejadian yang menghubungkan entitas atau hanya persamaan logika yang ada di antara entitas. Sedangkan menurut Connolly etal (2005,P15) relationship adalah asosiasi antar entitas. Macam-macam relationship dijelaskan dalam tabel berikut.
20
Tabel 2.2 Tabel Relasi Interpretasi Contoh Contoh Notasi Grafis Kardinalitas Minimum Maksimum Tepat satu 1 1 (satu dan hanya satu)
------- Atau -------
------- Atau ------1..1 Nol satu
atau
0
1
------- Atau ------0..1 Satu lebih
atau
1
Banyak (>1)
------- Atau ------1..* Nol, satu atau lebih
0
Banyak (>1)
------- Atau ------0..*
21
Lebih Satu
dari
>1
>1
2.9 Storyboard Menurut Foley (1996, P430), storyboard adalah urutan dari layar, yang dapat dipergunakan untuk mendefinisikan
tampilan dan beberapa aspek sementara dari
desain. Bentuk dari tampilan dapat didefinisikan oleh suatu gaya perancangan, yakni kodefikasi tertulis dari elemen dalam user-interface. Biasanya, dalam pengembangan gaya perancangan ini ditujukan untuk memastikan agar adanya konsistensi dari setiap tampilan aplikasi.
2.10 Kohesi dan Kopling Menurut Lethbridge etal, (2002, P299) kohesi adalah keeratan hubungan antara elemen-elemen di dalam suatu modul. Makin tinggi kohesi, semakin baik. Sebaliknya semakin rendah kohesi, semakin buruk program yang dihasilkan. Sedangkan kohesi adalah keeratan hubungan antar dua modul. Makin baik kopling, makin rendah ketergantungan suatu modul terhadap modul lain. Sebaliknya semakin buruk kopling, makin tinggi ketergantungan suatu modul terhadap modul lain. (Lethbridge etal, 2002, p305).
22
2.11 Model View Controller (MVC) Menurut Lethbridge etal, (2002,P337), MVC adalah sebuah pola arsitektur untuk membantu memisahkan layer tatap muka (user interface) dari bagian-bagian lain dalam sistem. MVC tidak hanya membantu dalam kohesi user interface layer, tetapi juga membantu mengurangi kopling antara layer tersebut dengan sistem lain. MVC juga berfungsi memisahkan functionallayer dari sistem (model) dari dua aspek userinterface, yaitu view dan controller.
Gambar 2.2 MVC View berisi object yang digunakan untuk menerjemahkan tampilan data dari model dalam user interface. View juga menampilkan kontrol yang berinteraksi dengan user. Controller berisi objek yang dapat mengontrol dan menangani interaksi user dengan view dan model. Controller mempunyai logic yang dapat menanggapi aksi yang dilakukan oleh user, misalnya ketika user mengetik dalam sebuah field ataupun mengklik mouse. Model tidak mengetahui apa yang di tampilkan oleh view dan controller. Aspek terpenting dalam MVC adalah pemasalahan antar model dengan view. MVC memungkinkan kita untuk mematuhi prinsip-prinsip desain berikut.
23
Pola
1. Divide and conquer Ketiga komponen dijadikan desain yang independen. 2. Meningkatkan kohesi Komponen-komponen memiliki kohesi layer yang lebih kuat dibandingkan jika view dan controller terdapat dalam sebuah user interface dengan layar tunggal. 3. Mengurangi kopling Saluran komunikasi antara ketiga komponen menjadi mudah untuk ditemukan. 4. Meningkatkan penggunaan kembali View dan controller biasanya digunakan sebagai komponen yang dipakai berulang-ulang untuk bermacam-macam control dalam user interface. Namun, user interface akan menjadi aplikasi spesifik, sehingga akan menjadi sulit untuk digunakan kembali. 5. Fleksibilitas rancangan Biasanya cukup mudah untuk mengganti user interface dengan mengganti view, controller, ataupun keduanya. 6. Desain yang dapat diuji Kita dapat melakukan pengujian terhadap aplikasi terpisah dari user interface.
24
2.12 PHP Hypertext Preprocessor 5 (PHP 5) Menurut Gilmore (2006, P3) PHP 5 merupakan sebuah terobosan dalam evolusi bahasa pemrograman PHP. Walaupun versi sebelumnya telah ditambahkan banyak sekali library baru, tetapi versi 5 memiliki peningkatan dari fungsi yang telah ada sebelumnya dan juga menambahkan fitur yang biasanya diasosiasikan dengan arsitektur bahasa pemrograman yang lebih dewasa: •
Peningkatan kemampuan pemrograman object oriented Peningkatan arsitektur OOP pada PHP adalah fitur yang paling terlihat. Versi 5 meliputi berbagai fungsional tambahan seperti konstruktor eksplisit dan destructor, cloning obyek, abstraksi class, lingkup variabel, interface, dan perbaikan besar bagaimana PHP menangani objek.
•
Penanganan pengecualian try/ catch Merancang strategi penanganan kesalahan secara custom dengan bahasa pemrograman terstruktur adalah, ironis, rawan kesalahan dan tidak konsisten. Untuk memperbaiki hal ini, versi 5 sekarang mendukung penanganan pengecualian.
•
Peningkatan penanganan string Pada versi sebelumnya, PHP telah memperlakukan string sebagai array secara default, praktek yang menunjukkan sikap bahasa yang longgar terhadap datatypes. Strategi ini telah perbaharui dalam versi 5, di mana diperkenalkannya sintak offset bagi string dan metodologi sebelumnya telah di-deprecated.
25
•
Peningkatan XML dan dukungan layanan web Dukungan XML sekarang didasarkan pada library libxml2 dan ekstensi baru yang menjanjikan untuk mem-parsing dan memanipulasi XML, SimpleXML, diperkenalkan.
•
Dukungan untuk SQLite Menambahkan dukungan untuk SQLite, suatu server database yang kuat namun kompak. SQLite menawarkan solusi yang nyaman bagi para pengembang, dengan banyak fitur yang ditemukan di beberapa produk database kelas berat tanpa menimbulkan permasalahan administrasi.
2.13 CodeIgniter (CI) Menurut Daiqiqil (2011, p3), CodeIgniter adalah sebuah framework dalam PHP dengan pola MVC yang bersifat open source yang digunakan untuk membuat aplikasi lebih dinamis. Kelebihan-kelebihan dari CI antara lain: -
Menggunakan pola MVC Dengan penggunaan pola MVC, struktur kode yang dihasilkan lebih terstruktur.
-
URL Friendly URL yang dihasilkan diminimalisasi penggunaan $_GET dan digantikan dengan URI.
-
Kemudahan CI menawarkan kemudahan dalam mempelajari, membuat library dan helper, memodifikasi serta integrasi.
26
-
Kecepatan Berdasarkan hasil benchmark, CI merupakan salah satu framework PHP tercepat yang ada saat ini.
-
Mudah dimodifikasi dan beradaptasi Modifikasi behavior tidak membutuhkan server requirement yang bermacammacam serta mudah mengadopsi library lainnya.
-
Dokumentasi lengkap dan jelas.
2.14 Perancangan Antar Muka (User Interface) Dalam melakukan perancangan antar muka yang baik, seorang designer diharapkan mampu membuat rancangan yang “ramah pengguna”, memiliki pemahaman menyeluruh tentang beragam komunitas pengguna dan pemahaman terhadap tugas-tugas yang harus tercapai. Antar muka yang efektif menghasilkan perasaan positif keberhasilan, kompetensi, penguasaan, dan kejelasan dalam komunitas pengguna. Para pengguna tidak dibebani oleh antar muka dan dapat memprediksi apa yang akan terjadi dalam menanggapi setiap tindakan yang dilakukan. Dalam merancang antar muka seperti itu, perlu adanya pemahaman tentang konsep, pedoman, dan metodologi perancangan antar muka.
2.14.1 Delapan Aturan Emas Desain Antarmuka Menurut Shneiderman (2010, P88-89), delapan aturan emas dijabarkan sebagai berikut.
27
1. Memperjuangkan konsistensi Konsisten dalam urutan dari tindakan yang diperlukan dalam situasi yang sama; terminologi identik harus digunakan dalam prompt, menu, dan layar bantuan, dan konsistensi warna, tata letak, kapitalisasi, tulisan, dan hal-hal lainnya. Pengecualian, seperti konfirmasi yang dibutuhkan dari perintah hapus atau untuk mengingat password, harus dipahami dan terbatas jumlahnya. 2. Memenuhi penggunaan secara universal Kenali kebutuhan pengguna yang beragam, fasilitasi transformasi isi. Perbedaan pengguna pakar dan pengguna, perbedaan rentang usia, orang cacat, dan keragaman setiap teknologi yang memperkaya spektrum persyaratan yang berhubungan dengan desain. Menambahkan fitur untuk pemula, seperti penjelasan, dan fitur untuk para ahli, seperti shortcut, bisa memperkaya desain antarmuka dan meningkatkan kualitas sistem yang dirasakan. 3. Menawarkan umpan balik informatif Untuk setiap tindakan pengguna, harus ada umpan balik sistem. Untuk tindakan yang sering dan kecil, balasan dapat sederhana, sedangkan untuk tindakan jarang dan besar, balasan harus lebih keras. Presentasi visual dari obyek yang menarik menyediakan lingkungan yang nyaman untuk pengguna. 4. Desain dialog untuk menghasilkan penutupan Urutan tindakan harus diatur dalam kelompok, dari awal, tengah, dan akhir. Informasi umpan balik pada penyelesaian dari kelompok tindakan memberikan operator kepuasan, rasa lega, sinyal untuk menjatuhkan kemungkinan rencana dari pikiran mereka, dan sinyal untuk mempersiapkan tindakan-tindakan berikutnya.
28
Misalnya, e-commerce situs web memindahkan pengguna dari pemilihan produk ke kasir, berakhir dengan halaman konfirmasi yang jelas yang melengkapi transaksi. 5. Mencegah kesalahan Sebisa mungkin, merancang sistem sehingga pengguna tidak dapat membuat kesalahan serius, misalnya, gray out item menu yang tidak tepat dan tidak mengizinkan karakter alfabet di bidang entri numerik. Jika pengguna membuat kesalahan, antarmuka harus mendeteksi kesalahan dan menawarkan instruksi sederhana, konstruktif, dan spesifik untuk pemulihan. Sebagai contoh, pengguna tidak perlu mengetik ulang alamat jika mereka memasukkan kode pos yang tidak valid, melainkan harus dipandu untuk memperbaiki hanya bagian yang rusak. Tindakan Keliru harus membuat state sistem tidak berubah, atau antarmuka harus memberikan petunjuk tentang pemulihan. 6. Pembatalan tindakan dengan mudah Sebisa mungkin, tindakan harus reversible. Fitur ini mengurangi kecemasan, karena pengguna tahu bahwa kesalahan dapat dibatalkan, sehingga mendorong eksplorasi pilihan asing. Satuan reversibility mungkin satu tindakan, tugas entry data, atau kelompok lengkap tindakan, seperti masuknya nama dan alamat blok. 7. Mendukung internal locus of control Operator yang berpengalaman sangat menginginkan bahwa mereka bertanggung jawab atas antarmuka dan antarmuka bereaksi terhadap tindakan mereka. Tindakan mengejutkan dari antarmuka, urutan membosankan data entri, ketidakmampuan untuk mendapatkan atau kesulitan dalam memperoleh informasi yang diperlukan,
29
dan ketidakmampuan untuk menghasilkan tindakan yang diinginkan semua membangun kecemasan dan ketidakpuasan. 8. Mengurangi beban memori jangka pendek Keterbatasan pengolahan informasi manusia dalam memori jangka pendek (aturan praktis adalah bahwa manusia dapat mengingat "Tujuh plus atau minus dua potongan" informasi) mensyaratkan bahwa tampilan akan dibuat sederhana, tampilan multi-halaman dikonsolidasikan, frekuensi jendela-gerak dikurangi, dan waktu pelatihan yang memadai dialokasikan untuk kode, mnemonik, dan urutan tindakan. Apabila diperlukan, akses online untuk bentuk perintah-sintaks, singkatan, kode, dan informasi lainnya harus disediakan.
2.15 State Transition Diagram (STD) Menurut Bentley etal (2007,P635) State transition diagram adalah alat yang digunakan untuk menggambarkan urutan dan variasi layar yang muncul pada saat sesi penggunaan. State transition diagram dapat dianalogikan sebagai “peta jalan”, di mana masing-masing layar dianalogikan sebagai sebuah kota. Tidak semua jalan melewati seluruh kota. Bujur sangkar digunakan untuk menggambarkan tampilan layar. Anak panah menunjukkan urutan munculnya layar-layar tersebut. Sebuah anak panah yang terpisah, masing-masing memiliki nama, digambar untuk setiap arah karena tindakan yang berbeda akan menggerakkan aliran kontrol dari aliran kontrol ke layar yang ada.
2.16 MySQL Menurut Gilmore (2006, P573), MySQL adalah server database relasional yang dekat dengan standar SQL-92 dengan masing-masing rilis, yang berarti Anda tidak akan 30
menemukan perbedaan terlalu banyak jika telah Anda terbiasa dengan produk database lainnya. Adapun kelebihan dari MySQL 5 adalah sebagai berikut. 1. Flexibility Binari MYSQL telah dioptimalkan untuk 12 platform, termasuk Dec OSF, FreeBSD, IBM AIX, HP-UX, Linux, Mac OS X, Novell NetWare, OpenBSD, QNX, SGI IRIX, Solaris, dan Microsoft Windows. Selain itu, MySQL menyediakan source code untuk diunduh jika binari tidak tersedia untuk platform Anda, atau jika Anda ingin melakukan kompilasi sendiri. 2. Power Sejak rilis awal, pengembang MySQL telah berfokus pada kinerja, bahkan dengan kerugian, yakni berkurangnya kumpulan fitur yang tersedia. Sampai saat ini, komitmen untuk kecepatan yang luar biasa belum berubah, walaupun seiring waktu kekurangan kemampuan sebelumnya telah tumbuh, untuk menyaingi banyaknya pesaing komersial dan open source. 3. Enterprise-Fitur Level SQL Pengguna MySQL telah lama mengeluhkan bahwa kurangnya fitur canggih seperti subqueries, view, dan prosedur penyimpanan yang mencegah database dari diadopsi pada tingkat perusahaan. Lama respons tim pengembangan adalah komitmennya untuk kecepatan dan kinerja, dan pada waktunya fitur ini akan dimasukkan. Versi 5.0 adalah bukti dari komitmen ini, dengan semua fitur yang disebutkan di atas.
31
4. Full-Text Indexing dan Searching Rilis MySQL versi 3.23.23 termasuk di dalamnya, penambahan dan pencarian teks lengkap, sebuah fitur yang sangat meningkatkan kinerja data mining dari berbasis teks kolom (yaitu CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, dan LONGTEXT). Fitur ini juga memungkinkan Anda untuk memproduksi hasil dari relevansi kesesuaian dengan seberapa dekat kecocokan terhadap query. 5. Query Caching Caching Query adalah salah satu penambahan kecepatan terbesar dalam MySQL. Sederhana dan sangat efektif ketika diaktifkan, query caching menyebabkan MySQL untuk menyimpan query SELECT, bersama dengan hasil yang sesuai, dalam memori. Saat pertanyaan berikutnya dijalankan, MySQL membandingkan terhadap cache yang tadi disimpan. Jika mereka cocok, MySQL tidak melakukan pengambilan database yang mahal, melainkan mengeluarkan hasil query cache. Untuk menghilangkan hasil usang, mekanisme juga dibangun untuk secara otomatis menghapus hasil cache dan re-cache pada permintaan berikutnya. 6. Replikasi Versi
3.23.15
melihat
penambahan
fitur
replikasi
MySQL.
Replikasi
memungkinkan database untuk yang berada di dalam satu server MySQL yang akan digandakan pada yang lain, yang menyediakan sejumlah keunggulan besar. Misalnya, hanya memiliki sebuah database slave tunggal di tempat, akan sangat meningkatkan ketersediaan, karena bisa segera dibawa online jika database master mengalami masalah. Jika Anda memiliki beberapa mesin yang Anda
32
inginkan, permintaan klien dapat tersebar di seluruh master dan banyak slave, sangat mengurangi beban yang seharusnya akan terjadi pada mesin tunggal. Keuntungan lain melibatkan backup, daripada membuat aplikasi Anda offline sampai back-up selesai, Anda malah bisa menjalankan backup pada slave, yang memungkinkan aplikasi Anda untuk nol down time. 7. Keamanan MySQL
menyediakan kumpulan keamanan yang sangat banyak dan pilihan
konfigurasi. Hal ini memungkinkan Anda untuk menggunakan keseluruhan kontrol atas hampir setiap aspek operasinya. Misalnya, dengan opsi konfigurasi MySQL Anda dapat mengontrol hal-hal seperti berikut: • Pemilik daemon, default bahasa, default port, lokasi menyimpan data MySQL, dan karakteristik kunci global lainnya; • Jumlah memori yang dapat dialokasikan untuk, cache query, tabel sementara, table join, dan index key buffers; • Berbagai aspek kemampuan jaringan MySQL, termasuk berapa lama akan melakukan koneksi sebelum diputuskan, apakah akan berusaha untuk me-resolve DNS Name,ukuran maksimum paket yang diizinkan, dan banyak lagi. Opsi keamanan MySQL sama-sama mengesankan, memungkinkan Anda untuk mengelola hal-hal seperti : o Keseluruhan jumlah query, update, dan koneksi yang diizinkan per jam; o Kapan waktu saat pengguna harus menunjukkan sertifikat SSL yang valid untuk koneksi ke database;
33
o Tindakan manakah yang tersedia untuk pengguna database, tabel, dan bahkan kolom. Sebagai contoh, Anda mungkin mengizinkan hak UPDATE untuk kolom e-mail dari tabel karyawan, tetapi melarang hak DELETE. Selain itu, MySQL melacak banyak metrik mengenai semua aspek interaksi database, termasuk, antara lain, keluar masuk jumlah byte yang ditransfer, menghitung setiap tipe query yang dieksekusi (INSERT, SELECT, UPDATE, DELETE), dan jumlah thread terbuka, cache, dan yang terhubung. Ini juga melacak jumlah query yang telah melampaui batas pelaksanaan tertentu, query total yang tersimpan dalam cache, jika dimungkinkan, uptime, dan banyak lagi. Angka tersebut membuktikan nilai tak terhingga untuk tuning terus menerus dan mengoptimalkan server Anda seumur hidup.
2.17 Database Dalam menyimpan data-data yang diperlukan, penulis lebih memilih menggunakan data-based approach dibandingkan dengan file-based approach. Menurut Connolly etal, (2005,P7), file-based approach adalah sebuah kumpulan dari program aplikasi yang menyediakan layanan bagi end-users seperti pembuatan laporan. Masingmasing program mendefinisikan dan mengatur masing-masing data. Secara sederhana, file-based system diartikan sebagai teknik penyimpanan yang dilakukan secara manual ke dalam sebuah sistem. Adapun kelemahan-kelemahan yang dimiliki oleh file-based approach adalah:
34
1. Pemisahan dan isolasi data Ketika data diisolasi ke dalam file-file yang terpisah, akan lebih sulit untuk mengakses data yang seharusnya tersedia. Sebagai contoh, ketika kita ingin menampilkan list rumah yang cocok dengan kebutuhan dari client, kita harus mencari data melalui lebih dari dua file. Pertama,
kita harus membuat
sebuah file sementara untuk client dengan preferensi tipe rumah masingmasing. Kemudian kita harus mencari property rent dengan subject rumah dengan budget sesuai dengan kemampuan client. Dengan menggunakan pemrosesan seperti ini sulit dilakukan. 2. Duplikasi data File-based approach tidak mampu melakukan pengontrolan terhadap duplikasi data. Beberapa alasan mengapa duplikasi data merupakan hal yang harus dihindari: o Duplikasi membuat waktu dan biaya yang diperlukan untuk memasukkan data menjadi bertambah. o Menambah alokasi penyimpanan data. o Duplikasi dapat mengurangi integritas data; dengan kata lain data yang ada menjadi tidak konsisten. 3. Dependensi data Struktur fisik dan penyimpanan file-file data di definisikan dalam kode aplikasi. Artinya bahwa setiap perubahan terhadap struktur menjadi sulit untuk dilakukan.
35
sebuah file
4. Format file yang tidak sesuai Karena struktur dari file-file tertanam dalam program aplikasi, strukturstruktur
tersebut
akan
menjadi
sangat
tergantung
dengan
bahasa
pemrograman dari masing-masing aplikasi. Sebagai contoh, struktur sebuah file yang dibangun dengan menggunakan bahasa pemrograman COBOL akan berbeda dengan file yang dibangun dengan menggunakan program ‘C’. Ketidaksesuaian format seperti ini akan menyulitkan dalam proses penyatuan file-file yang ada pada kedua program. 5. Query yang tetap/berubah dari program aplikasi File-based system adalah sistem yang dependen terhadap seorang developer aplikasi. Dalam organisasi tertentu, jenis query ataupun report yang dibuat bersifat tetap. Di sisi lain ada organisasi yang melakukan pengembangan terhadap file-file dan aplikasi program. Pada jenis sistem ini beberapa fungsi dihilangkan, seperti: o Tidak adanya ketentuan tentang sekuritas dan integritas; o Tidak adanya perbaikan terhadap hardware dan software yang gagal; o Tidak adanya ketentuan untuk mengakses shared-data oleh staff dalam satu departemen. Dengan beberapa kelemahan yang dimiliki oleh file-based system, banyak organisasi yang menerapkan sistem penyimpanan data mereka dengan pendekatan database. Database adalah “Sekumpulan koleksi dari data-data yang berkaitan secara
36
logical, dan sebuah deskripsi dari data, dirancang untuk memenuhi kebutuhan informasi dari suatu organisasi. (Connolly etal, 2005, P15). Untuk mendefinisikan sebuah database, kita harus menjelaskan apa yang dimaksud dengan ‘kaitan logical’. Ketika kita menganalisa kebutuhan informasi dari sebuah organisasi, kita mengidentifikasi entities, attributes, dan relationships. Entity adalah sebuah objek yang berbeda (aktor, tempat, benda, konsep, atau event) dalam sebuah organisasi yang direpresentasikan dalam database. Attribute adalah sebuah properti yang mendeskripsi beberapa aspek dari objek yang ingin disimpan, dan relationship adalah sebuah asosiasi atau hubungan antara entitiy.
2.18 Teori Keamanan Pilihan keamanan yang dipakai dalam sistem adalah authentication. Menurut Stallings (2005, P28), plaintext adalah pesan atau data asli yang diterjemahkan ke dalam algoritma sebagai input. Menurut Stallings (2005, P9), authentication adalah sebuah proses yang digunakan untuk memeriksa integritas dari yang dikirim. Salah satu bentuk authentication yang sering digunakan adalah username dan password.
2.19 Google Maps Google Maps diperkenalkan di blog yang di-posting oleh google di bulan Februari 2005. Hal ini membuat revolusi kerja suatu peta dalam internet dengan membiarkan user melakukan drag untuk melakukan navigasi. Cara kerja dari Google Maps adalah dengan memuat gambar dari pecahan map ke dalam background, yang kemudian dipanggil oleh Ajax dan dimasukkan ke dalam
37
pada HTML. Sambil anda menavigasikan map, API mengirimkan informasi mengenai koordinat baru dan level skala dari map yang di mana selanjutnya Ajax kembali memanggil gambar baru. Koordinat yang dipergunakan oleh google Maps Word Geotic System 84, yakni sistem sama yang dipergunakan oleh GPS. Koordinat diekspresikan dengan menggunakan latitude dan longitude (dapat anda analogikan dengan koordinat y dan x).
38