Bab 2 Tinjauan Pustaka
2.1
Teori yang Berkaitan dengan rekayasa perangkat lunak Teori yang berkaitan dengan rekayasa perangkat lunak sebagai dasar dalam proses pembuatan aplikasi ini adalah sebagai berikut. 2. 1.1 Perangkat lunak Menurut Pressman (2010, p. 4), perangkat lunak terdiri dari tiga definisi, yaitu: 1.
Instruksi (program komputer) ketika dijalankan menghasilkan fitur dan performance yang diharapkan.
2.
Struktur data yang memungkinkan program dapat memanipulasi data.
3.
Dokumen yang menggambarkan operasi dan penggunaan dari suatu program.
Menurut Pressman (2010, p. 4-7), perangkat lunak memiliki beberapa karakteristik yang berbeda dengan perangkat keras, yaitu: 1.
Perangkat lunak dikembangkan atau direkayasa dan tidak diproduksi. Perangkat lunak dan perangkat keras memerlukan perancangan yang baik untuk mencapai kualitas tinggi, tetapi di dalam fase pembuatan perangkat keras, selalu ditemukan masalah kualitas yang berbeda dengan perangkat lunak. Pada fase perancangan perangkat lunak masalah tersebut tidak ada, jika terjadi masalah pada perangkat lunak, perbaikan dalam perangkat lunak lebih mudah. Oleh karena itu dalam fase perancangan, perangkat lunak lebih
mudah
memperbaiki
perangkat keras.
9
masalah
kualitas
dibandingkan
10
2.
Perangkat lunak tidak memiliki usia (wear out). Perangkat lunak tidak rentan terhadap pengaruh lingkungan yang bisa menyebabkan kerusakan, seperti halnya perangkat keras yang menjadi rusak. Perbedaan antara perangkat keras dan perangkat lunak adalah ketika sebuah komponen perangkat keras telah rusak, komponen dapat diganti dengan spare part yang baru, namun tidak ada spare part bagi perangkat lunak. Saat perangkat lunak mengalami kegagalan (rusak), berarti terjadi kesalahan dalam proses penerjemahan rancangan code yang bisa diterjemahkan ke dalam machine code. Oleh karena itu pemeliharaan pada perangkat lunak menjadi lebih kompleks daripada pemeliharaan perangkat keras.
3.
Pada ruang lingkup industri perangkat lunak dibangun berbasis komponen secara khusus. Suatu komponen pada perangkat lunak harus dirancang dan diimplementasikan sehingga dapat digunakan kembali pada program yang berbeda.
2. 1.2 Rekayasa Perangkat Lunak Menurut Pressman (2010, p. 13-14), rekayasa perangkat lunak adalah penerapan dan penggunaan prinsip-prinsip rekayasa untuk memperoleh perangkat lunak yang ekonomis, yaitu perangkat lunak yang dapat diandalkan dan bekerja secara efisien pada komputer. Layer pada rekayasa perangkat lunak ada empat, yaitu: 1.
A quality focus Pada saat membuat sebuah aplikasi, fokus yang pertama kali adalah membangun kualitas pada sebuah aplikasi tersebut seperti siapa sasaran pengguna aplikasi, aplikasi seperti apa yang akan dibuat dan lain-lain. Oleh karena itu fokus kualitas rekayasa perangkat lunak akan mengetahui nilai sebuah aplikasi yang akan dibuat. Misalnya akan dibuat aplikasi Promotion Restaurant Berbasis Social Media pada Perangkat Mobile dengan Platform Android. Dengan berfokus pada kualitas, maka software engineer akan mengetahui ruang lingkup aplikasi yang akan dibuat, fitur-
11
fitur yang melengkapi aplikasi tersebut dan lain-lain, dengan fokus pada kualitas software engineer akan mengetahui bentuk dari aplikasi yang akan dibuat. 2.
Process Process
rekayasa
perangkat
lunak
membentuk
sebuah
kerangka kerja yang sesuai dengan kunci proses area (key process area) yang harus dilakukan berdasarkan urutan yang tepat, agar tidak terjadi kesalahan pada saat membuat sebuah aplikasi. 3.
Methods Methods rekayasa perangkat lunak memberikan teknik untuk membuat aplikasi. Methods meliputi analisi kebutuhan, desain, konstruksi program, pengujian, dan pemeliharaan. Methods yang digunakan harus disesuaikan dengan aplikasi yang dibuat.
4.
Tool Tools rekayasa perangkat lunak dapat digunakan software engineer dalam menyelesaikan sebuah aplikasi.
2. 1.3 OOAD (Object Oriented Analysis Design) Menurut Bentley & Jeffrey (2007, p. 25), object oriented analysis design adalah kumpulan tools dan teknik yang digunakan dalam pengembangan sistem dengan memanfaatkan teknologi objek untuk membangun sistem dan perangkat lunak.
2. 1.4 Model Waterfall 1.
Definisi Waterfall Menurut Pressman (2010, p. 39-41), model waterfall atau disebut classic life cycle adalah sebuah model klasik yang bersifat sistematik,
berurutan
dalam
membangun
perangkat
lunak.
Waterfall adalah suatu metodologi pengembangan perangkat lunak yang
dimulai
dari
communication,
construction, dan deployment.
planning,
modelling,
12
2.
Tahapan dalam Model Waterfall Menurut Pressman (2010, p. 15), ada lima tahapan dalam model waterfall: 1.
Communication Pada tahap communication dilakukan analisis terhadap kebutuhan perangkat lunak yang akan dibuat, pengumpulan data dengan melakukan pertemuan dengan customer untuk mendapatkan kebutuhan (requirements) serta mengumpulkan data-data tambahan seperti referensi dari jurnal, artikel, dan buku.
2.
Planning Tahap
planning
merupakan
perencanaan
dalam
menyelesaikan perangkat lunak yang akan dibuat. Pada tahap ini software engineer membuat perkiraan waktu yang diperlukan.
Tahapan
ini
terdiri
dari
perencanaan,
memperkirakan, penjadwalan, dan pemeriksaan. 3.
Modelling Tahap modelling adalah tahapan perancangan aplikasi. Tahapan ini terdiri dari analisis dan perancangan desain.
4.
Construction Tahap cunstruction merupakan proses menerjemahkan hasil perancangan desain ke dalam coding (code generation), kemudian melakukan pengujian untuk menemukan error dalam code. Proses ini terdiri dari coding dan pengujian.
5.
Deployment Tahap deployment yang terdiri atas delivery, support, dan feedback. Pada tahap ini, perangkat lunak akan dikirim kepada customer untuk mendapatkan feedback terhadap perangkat lunak yang sudah dibuat.
13
Gambar 2. 1: Model Waterfall (Pressman, p. 39, 2010)
Kelima aktivitas tersebut dapat digunakan dalam pengembangan program yang kecil, pembuatan aplikasi dari web yang besar, dan rekayasa sistem komputer yang besar dan kompleks. Rincian dari proses perangkat lunak tersebut akan berbeda pada setiap kasus, namun memiliki aktivitas framework yang selalu sama.
2. 1.5 Model View Controller (MVC) Menurut Lethbridge & Laganiere (2005, p. 355), model view controller adalah sebuah konsep pemrograman yang digunakan untuk memisahkan layer user interface dari bagian-bagian lain dalam sistem yang dibagi atas komponen model, view, controller. 1.
Model Model merupakan komponen yang berinteraksi langsung dengan database seperti memasukkan, menambahkan, mengedit, menghapus data yang terdapat dalam komponen model.
2.
View View merupakan komponen yang berinteraksi langsung dengan user. Sistem dapat menampilkan hasil dari permintaan pada komponen controller yang berinteraksi langsung dengan komponen model.
3.
Control Controller merupakan komponen penghubung antara model dan view. Controller yang berfungsi sebagai pengambilan input user dalam bentuk view dan mengirim input tersebut ke dalam komponen model.
14
2. 1.6 Unified Modelling Language (UML) 1.
Definisi Unified Modelling Language (UML) Menurut Bennett et al. (2006, p. 60), Unified Modelling Language
(UML)
adalah
sebuah
metodologi
yang
berisi
pendekatan pada pengembangan perangkat lunak (misalnya, orientasi objek), kumpulan teknik dan notasi (misalnya, Unified Modelling Language atau UML) yang mendukung pendekatan tersebut, sebuah model lifecycle (misalnya, spiral incremental) untuk menyusun proses pengembangan dan menyatukan kumpulan prosedur dan filosofi. 2.
Diagram-Diagram UML Beberapa diagram UML adalah sebagai berikut. 1.
Use Case Diagram Menurut
Ambler
(2005,
p.
33),
diagram
yang
menggambarkan hubungan antara aktor dan use case pada sebuah sistem. Menurut Ambler (2005, p. 34-35), komponen yang digunakan dalam use diagram, yaitu use case yang digambarkan dengan bentuk elips, use case yang digambarkan dengan bentuk orang/ stick man (actor) dan relasi yang digambarkan dengan bentuk garis. 1.
Use case yang digambarkan dengan bentuk elips Use case menunjukan hubungan antara actor dan use case
pada
sebuah
sistem.
Sebuah
use
case
menggambarkan suatu urutan tindakan yang memberikan ukuran nilai bagi seorang aktor. Sebuah use case digambarkan seperti horizontal elipse pada UML use case diagram. Ada beberapa cara untuk membuat elipse adalah sebagai berikut. a. Menggunakan nama use case dengan kata kerja. Penggunaan kata kerja pada use case harus jelas. Dalam penamaan use case sebaiknya kata kerja seperti “proses”, “melakukan”, dan “mengerjakan”,
15
penamaan use case yang tidak baik, seperti “proses penarikan” akan lebih baik menjadi “penarikan dana”. b. Penggunaan nama use case harus jelas dalam menyampaikan makna dari use case tersebut. Sebagai contoh, nama use case yang tidak jelas, seperti “sampaikan paket melalui kendaraan transportasi” dan nama use case yang jelas serta lebih dimengerti seperti “pengiriman paket”. c. Mengimplementasikan pertimbangan waktu di antara use case. Sebagai contoh, use case A harus diselesaikan sebelum melanjutkan use case B, seperti use case “menyimpanan uang di bank”. Diawali dengan open account, deposit uang, mencetak struck, dan close account. Contoh tersebut menjelaskan stepby-step dari awal proses sampai proses selesai.
Gambar 2.2: Contoh Use Case Diagram yang Dibuat Berdasarkan Pertimbangan Waktu (Ambler, p. 35, 2005)
16
2.
Use case yang digambarkan dengan bentuk orang atau stick man (actor) Menurut Ambler (2005, p. 35), actor adalah orang, organisasi, dan sistem ekternal yang mempunyai peran dalam satu atau lebih interaksi dengan sistem. Menurut Ambler (2005, p. 36-38), urutan dalam menghubungkan actor pada sebuah sistem adalah sebagai berikut. a. Menempatkan actor utama di sudut kiri atas diagram. b. Menggambarkan actor di luar diagram use case. c. Nama actor harus tunggal, kata benda yang saling berhubungan. d. Mengasosiasikan masing-masing actor dengan satu atau lebih use case. e. Nama actor digunakan untuk jenis peran, not job titlles. f. Sistem pada use case digunakan untuk menunjukan pelaku pada sistem. g. Actor tidak boleh berinteraksi satu sama lain.
3.
Interaksi yang digambarkan dengan bentuk garis. Menurut Ambler (2005, p. 38), beberapa jenis interaksi yang ada pada use case diagram: a. Interaksi antara actor dan use case b. Interaksi antara dua use case c. Generalisasi antara dua actor d. Generalisasi antara dua use case
4.
Sistem boundary box Menurut Ambler (2005, p. 45), sistem boundary box digunakan untuk menunjukan ruang lingkup sistem yang digunakan. Sistem boundary box adalah persegi panjang yang berada di sekitar use case.
17
Gambar 2.3: Contoh Use Case Diagram dalam Online Shopping (Ambler, p. 36, 2005)
Gambar 2.4: Contoh Use Case Diagram dalam Pendaftaran Mahasiswa Baru (Ambler, p. 39, 2005)
2.
Activity Diagam Menurut Ambler (2005, p. 113), activity diagram berfungsi untuk menjelaskan alur kontrol dari sistem secara singkat dan mudah dipahami. Activity diagram setara dengan flow chart dan data flow diagram dari pengembangan
18
terstruktur. Activity diagram digunakan untuk mengekplorasi logika, seperti: a.
Operasi yang kompleks.
b.
Aturan bisnis yang kompleks.
c.
Satu use case.
d.
Beberapa use case.
e.
Proses bisnis.
f.
Proses perangkat lunak.
Menurut Ambler (2005, p. 113-117) dalam activity diagram, terdapat beberapa komponen penting, yaitu: 1.
Initial state Setiap UML activity diagram harus memiliki titik awal (initial state) dan menempatkannya di bagian kiri atas. Selain itu pilihan lain dalam menempatkan titik awal yang baik adalah dibagian atas tengah diagram. Initial state dilambangkan dengan tanda bulat hitam (●).
2.
Final state Sebuah final state digambarkan dengan lingkaran dengan titik hitam ditengahnya (). Komponen ini menandakan bagian akhir dari proses activity diagram.
3.
Conector Conector diletakkan pada proses activity yang saling berjauhan dan digunakan untuk menghindari terlalu banyak proses garis saling membentuk persilangan. Conector
yang
dibuat
harus
berpasangan
yang
mengartikan activity yang masuk dan activity yang keluar. Label conector yang baik menggunakan angka, karena untuk menghindari kebingungan saat membaca. Conector dilambangkan dengan lingkaran yang diisi dengan angka (1).
19
4.
Action state Action state adalah proses activity diagram yang dapat dijalankan. Action state digambarkan dengan kotak berujung bundar dengan tulisan berupa kata kerja di dalamnya.
Gambar 2.5: Lambang Action State (Ambler, p. 114, 2005)
5.
Decision Decision logika.
menggambarkan
Kondisi
“IF”
aktivitas
dalam
percabangan
activity
diagram
menggambarkan transisi masuk yang diperbolehkan hanya satu transisi, sedangkan transisi keluar harus terdiri dari dua atau lebih transisi. Decision dilambangkan dengan simbol belah ketupat (diamond).
Gambar 2.6: Lambang Decision (Ambler, p. 120, 2005)
20
6.
Control flow Control flow berfungsi untuk menunjukkan alur dari sebuah sistem dan dapat ditambahkan di transisi keluar (setelah lambang decision). Control flow digambarkan dengan tanda panah.
Gambar 2.7: Lambang Control Flo (Ambler, p. 114, 2005)
Gambar 2.8: Contoh Activity Diagram dalam Pendaftaran Mahasiswa Baru di Universitas (Ambler, p. 114, 2005)
3.
Sequence Diagram Menurut Ambler (2005, p. 80), sequence diagram menggabungkan use case diagram dan class diagram. Sequence diagram menggambarkan pesan terkirim dan di terima di antara objek pada sebuah use case di mana pesan tersebut akan membentuk method pada class diagram.
21
Menurut Ambler (2005, p. 80-81), sequence diagram digunakan untuk: 1.
Memvalidasi
dan
menyempurnakan
logika
dan
kelengkapan skenario yang akan digunakan. 2.
Membantu serta mempermudah rekayasa perangkat lunak dalam mendesain aplikasi.
3.
Desain yang telah dibuat.
4.
Mengetahui classes yang kompleks.
5.
Mendeteksi hambatan dalam desain dengan melihat alur pesan yang digambarkan di dalam berorientasi sequence diagram. Menurut Ambler (2005, p. 85), dalam sequence diagram,
terdapat beberapa komponen penting yaitu, sebagai berikut. 1.
Actor Actor adalah pengguna sistem. Actor terbagi dua, yaitu actor proactive dan actor reactive. Actor proactive diletakkan pada sisi paling kiri diagram, sedangkan actor reactive diletakkan pada sisi paling kanan diagram. Dalam sequence diagram, actor dilambangkan dengan bentuk orang (stick man).
Gambar 2.9: Lambang Actor (Ambler, p. 84, 2005)
2.
Object Object adalah kelas-kelas yang ada pada sequence diagram. Pemberian nama object pada sequence diagram memiliki bentuk standar UML seperti, nama “classname”.
22
Sebagai contoh, mahasiswa diberi nama “thestudent”. Pemberian nama object pada sequence diagram agar diagram tidak ambigu. Object dilambangkan dengan kotak. Di dalam kotak tersebut diberikan nama dari kelas yang digunakan.
Gambar 2.10: Lambang Object (Ambler, p. 82, 2005)
3.
Lifeline Lifeline adalah periode waktu penggunaan suatu object pada sequence diagram. Lifeline dilambangkan dengan kotak yang memanjang ke bawah. Lifeline dimulai dari awal suatu object dipanggil.
4.
Message Message merupakan permintaan yang dikirimkan dari object pengirim kepada object penerima. Hubungan antara dua object digambarkan dengan panah dan di atas panah tersebut
dituliskan
message
permintaan dari object pengirim.
yang
menggambarkan
23
Gambar 2.11: Contoh Sequence Diagram dalam Pendaftaran Seminar untuk Mahasiswa (Ambler, p. 82, 2005)
4.
Class Diagram Menurut Ambler (2005, p. 47), class diagram adalah UML yang menggambarkan class-class yang terdapat dalam sistem, hubungan antara class dan operasi serta attribute yang dimiliki oleh setiap class. Class diagram digunakan untuk: 1.
Menggambarkan konsep domain dalam bentuk model.
2.
Menganalisis kebutuhan dalam bentuk konseptual atau model analisis.
3.
Menggambarkan design object oriented secara rinci. Menurut Ambler (2005, p. 48), dalam class diagram,
terdapat beberapa komponen penting yaitu, sebagai berikut. 1.
Nama class Nama
class
mengidentifikasi
class
serta
menggambarkan isi dari class secara keseluruhan. Nama class dibuat berdasarkan terminologi umum sehingga dapat diterima dan lebih mudah untuk dimengerti saat membaca class diagram.
2.
Attribute
24
Attribute adalah data-data yang menyusun class. Attibute berfungsi sebagai variabel dalam pemrograman. 3.
Fungsi Fungsi berguna untuk melakukan proses yang berkenaan dengan object.
4.
Hubungan (Relationship) Dalam class diagram, hubungan mencakup semua konsep UML, seperti hubungan asosiasi, hubungan asosiasi langsung, hubungan agregasi atau komposisi. a. Hubungan asosiasi Hubungan asosiasi adalah hubungan antara dua class yang dapat mengakses satu sama lain. Dalam gambar di bawah ini, class “Order” dapat mengakses fungsi-fungi yang ada di dalam class “Item” dan sebaliknya.
Order
Item 1
1
Gambar 2.12: Hubungan Asosiasi (Ambler, p. 65, 2005)
b. Hubungan asosiasi langsung Hubungan asosiasi langsung adalah hubungan di mana hanya satu class yang dapat mengakses fungsi dari class satunya dan tidak sebaliknya class yang satu tidak dapat mengakses fungsi class lainnya. Dalam gambar di bawah ini, class “Order” dapat mengakses fungsi-fungsi dalam class “Item”, tetapi tidak sebaliknya.
25
Order
Item
1
1
Gambar 2.13: Hubungan Asosiasi Langsung (Ambler, p. 65, 2005)
c. Hubungan agregasi atau komposisi Hubungan
agregasi
atau
komposisi
adalah
hubungan yang menyatakan bahwa suatu class merupakan bagian dari class lain. Apabila sebuah class tidak bisa berdiri tanpa class lain, maka kedua class tersebut memiliki komposisi. Namun, bila suatu class tersebut merupakan bagian dari class lain dan class tersebut masih dapat berdiri tanpanya, maka hubungan
tersebut
disebut
sebagai
agregasi.
Komposisi dilambangkan dengan tanda dan agregasi dilambangkan dengan tanda . Sebagai contoh, sebuah pesawat yang terdiri dari sayap, mesin, dan roda.
Gambar 2.14: Contoh Class Diagram (Ambler, p. 71, 2005)
26
2.2
Teori yang Terkait dengan Tema Penelitian Teori-teori yang terkait dengan tema pembuatan aplikasi ini adalah sebagai berikut. 2. 2.1 Interaksi Manusia dan Komputer 1. Definisi Interaksi Manusia dan Komputer Menurut Shneiderman & Plaisant (2010, p. 22). Interaksi manusia dan komputer adalah sebuah ilmu yang mempelajari hubungan dan interaksi yang terjadi antara manusia dan komputer. Fokus dari interaksi manusia dan komputer adalah perancangan dan evaluasi antarmuka pengguna (user interface). 2.
Eight Golden Rules of Interface Design Eight Golden Rules of Interface Design menurut Shneiderman & Plaisant (2010, p. 88-89) adalah sebagai berikut. 1.
Strive for consistency Sebuah aplikasi harus memiliki tampilan dan operasional yang konsisten. Hal ini mencakup konsisten pada warna, layout, jenis tulisan, menu, ukuran dan harus berada pada letak yang sama serta hal lainnya harus diterapkan secara konsisten.
2.
Cater to universal usability Sebuah aplikasi harus memberikan keterangan pada setiap fitur bagi pengguna yang baru dan menyediakan shortcuts bagi pengguna yang sudah ahli (expert).
3.
Offer informative feedback Sebuah
aplikasi
harus
memberikan
umpan
balik
(feedback) terhadap setiap aksi yang dilakukan oleh pengguna. Misalnya ketika pengguna memilih salah satu menu yang ada pada aplikasi, maka menu tersebut akan berubah warna, menandakan bahwa menu tersebut sedang dipilih oleh pengguna. 4.
Design dialogs to yield closure Urutan aksi harus dirancang menjadi beberapa bagian seperti bagian awal, bagian tengah, dan bagian akhir. Memberikan umpan balik apabila aksi pengguna yang sedang dilakukan telah selesai dan
melanjutkan aksi selanjutnya.
27
Misalnya ketika pengguna melakukan register account pada suatu aplikasi, maka ada urutan yang dimulai dari pengisian identitas diri, selanjutnya memilih button “send” dan pengguna akan mendapatkan konfirmasi bahwa account tersebut telah berhasil. Halaman konfirmasi tersebut menunjukan bahwa aksi yang dilakukan pengguna telah selesai. 5.
Pervent errors Sebuah aplikasi dirancang agar pengguna tidak melakukan kesalahan yang fatal. Jika pengguna melakukan kesalahan, sistem harus mendeteksi kesalahan dan memberikan intruksi yang sederhana dan mudah dipahami untuk melakukan perbaikan kesalahan tersebut. Misalnya ketika pengguna salah memasukan username atau password saat login pada sebuah aplikasi, akan muncul keterangan bahwa username atau password pengguna salah, dan pengguna diberitahu untuk memasukan ulang username atau password.
6.
Permit easy reversal of actions Suatu aplikasi harus disediakan fitur yang memungkinkan pengguna untuk kembali ke aksi sebelumnya, sehingga pengguna dapat mencoba pilihan-pilihan lain yang belum biasa digunakan. Misalnya ketika pengguna melakukan kesalahan dalam memasukan email dan username pada register account di kotak pengisian, maka pengguna dapat menggunakan fitur “undo” yang dapat kembali ke aksi sebelumnya untuk melakukan pengisian email dan username yang benar. Fitur ini dapat memperkecil kesalahan yang dilakukan pengguna.
7.
Support internal locus of control Sebuah aplikasi dirancang harus bisa dikendalikan oleh pengguna yang memiliki keinginan untuk mengontrol sistem dan sistem akan memberikan umpan balik terhadap aksi yang dilakukan
pengguna. Sebaiknya sistem dirancang agar
pengguna dapat mengetahui langkah-langkah apa saja yang harus diambil. Misalnya pada aplikasi yang menyediakan fitur promotion restaurant, jika pengguna memilih fitur promotion
28
restaurant, maka akan muncul nama-nama restaurant yang memberikan promotion. Tetapi jika tidak ada promotion, maka aplikasi akan memunculkan halaman kosong yang artinya tidak ada restaurant yang memberikan promotion. 8.
Reduce short term memory load Pengguna memiliki keterbatasan ingatan sehingga sebuah aplikasi harus dirancang dengan tampilan yang sederhana agar mudah dimengerti dan diingat oleh pengguna. Misalnya menu pada aplikasi selalu berada pada bagian bawah layar dan dimulai dari kiri ke kanan, hal itu memudahkan pengguna untuk mengingat bahwa posisi menu selalu di bawah layar aplikasi.
3.
Lima Faktor Manusia Terukur Menurut Shneiderman & Plaisant (2010, p. 32), lima faktor manusia terukur adalah sebagai berikut. 1.
Waktu Belajar Berapa lama waktu yang dibutuhkan pengguna untuk mempelajari sekumpulam perintah suatu aplikasi. Dengan kata lain kemudahan dalam mengoperasikan aplikasi sehingga pengguna dapat dengan mudah menggunakan aplikasi tersebut. Misalnya sebuah aplikasi memiliki button navigasi dan fiturfitur yang mudah dimengerti pengguna, maka pengguna tidak akan memerlukan waktu yang lama dalam memperlajari aplikasi tersebut.
2.
Kecepatan Kinerja Berapa lama waktu yang diperlukan untuk mengerjakan suatu tugas. Pengguna menginginkan kecepatan penyajian informasi yang cepat, misalnya feedback.
3.
Tingkat Kesalahan Berapa lama kesalahan dan jenis kesalahan apa saja yang dilakukan oleh pengguna dalam menyesesaikan suatu tugas. Aplikasi harus memiliki tingkat kesalahan yang rendah bila sedang digunakan.
29
4.
Daya Ingat Daya ingat berkaitan dengan waktu belajar. Semakin sering pengguna menggunakan aplikasi, maka semakin mudah pengguna dalam mengingat aplikasi tersebut. Aplikasi juga harus mudah digunakan sehingga pengguna hanya memerlukan waktu belajar yang singkat.
5.
Kepuasan Subjektif Bagaimana tingkat kepuasan pengguna terhadap berbagai aspek dari aplikasi. Kepuasan subjektif pengguna dapat diketahui dari hasil keusioner terhadap aplikasi tersebut.
2. 2.2 Database Menurut Connolly & Begg (2010, p. 65), database adalah kumpulan data yang saling berhubungan secara logika dan dirancang untuk memenuhi kebutuhan informasi dari suatu organisasi. Database menjelaskan hubungan secara logika dan menganalisis informasi yang dibutuhkan oleh organisasi yang mengidentifikasi entities, attributes, dan relationships. Entity adalah objek (orang, tempat, benda, konsep, ataupun kejadian) dalam organisasi yang dipresentasikan dalam database. Attributes adalah properti yang mendeskripsikan beberapa aspek objek yang dibutuhkan untuk record, dan relationships adalah asosiasi di antara beberapa entities.
2. 2.3 Database Management System (DBMS) Menurut Connolly & Begg (2010, p. 66), Database Management System (DBMS) adalah sebuah sistem perangkat lunak yang memungkinkan
pengguna
untuk
mendefinisikan,
membuat,
memelihara, dan mengontrol akses ke database. DBMS menyediakan beberapa bahasa yang dapat digunakan oleh pengguna untuk berinteraksi dengan database dan program aplikasi. Fasilitas yang tersedia dalam DBMS adalah sebagai berikut. 1.
Data Definition Languange (DDL) Data Definition Languange (DDL) memungkinkan pengguna untuk menentukan tipe data, mendefinisi basisdata, struktur dan
30
jenis data untuk disimpan dalam database. Contoh operasi yang menggunakan DDL adalah sebagai berikut. a.
Create Table Create table digunakan untuk membuat tabel dengan mengidentifikasikan tipe data untuk setiap kolom.
b.
Alter Table Alter table digunakan untuk menambah atau membuang kolom.
c.
Drop Table Drop table digunakan untuk membuang atau menghapus tabel beserta semua data yang terdapat di dalamnya.
2.
Data Manipulation Languange (DML) Data pengguna
Manipulation untuk
Languange
memasukan
(DML)
(insert),
memungkinkan
mengubah
(update),
menghapus (delete), dan mengambil data dari basis data. DML menyediakan fasilitas permintaan umum yang dibutuhkan oleh data yang disebut bahasa query. Structured query languange (SQL) adalah bahasa query yang paling umum digunakan dan merupakan bahasa standar untuk hubungan DBMS. Contoh operasi DML adalah sebagai berikut. a.
Select Select digunakan untuk menampilkan sebagian atau seluruh isi dari suatu tabel.
b.
Update Update digunakan untuk memodifikasi data yang disimpan dalam basisdata.
c.
Delete Delete digunakan untuk menghapus sebagian atau seluruh data dalam basisdata.
d.
Insert Insert digunakan unutk memaukan data baru ke dalam basisdata.
31
2. 2.4 Structured Query Language (SQL) 1. Definisi Structured Query Language (SQL) Menurut Connolly & Begg (2010, p. 183), Structured Query Language atau disebut SQL merupakan contoh dari transfromoriented atau bahasa yang dirancang dalam penggunaan relasi untuk mengubah input menjadi output yang diperlukan. 2.
SQL memiliki dua komponen utama, yaitu sebagai berikut. 1.
Data Definition Languange (DDL) untuk mendefinisikan struktur database dan mengontrol akses pada data.
2.
Data Manipulation Languange (DML) untuk mengambil dan memperbarui data.
2. 2.5 Object Oriented Programming (OOP) Menurut Ullman (2013, p. 120), OOP merupakan pemrograman yang
tidak
hanya
menggambarkan
sintaks
baru,
tetapi
juga
menggambarkan cara baru penyelesaian masalah dengan class dan object. Menurut Kendal (2011, p. 23), tujuan utama dari OOP adalah sebagai berikut. 1.
Better abstractions : proses permodelan atau pendeskripsian attribute dan method dari suatu object.
2.
Better maintainability: proses pemecahan struktur logikal menjadi bagian yang kecil sehingga membuat lebih mudah dipahami.
3.
Better reusability : objek yang telah dibuat sebelumnya dapat digunakan kembali.
2. 2.6 Java Menurut Liang (2009, p. 32), Java adalah bahasa pemrograman yang memiliki fitur yang lengkap, tujuan utama dari bahasa pemrograman yang digunakan untuk mengembangkan aplikasi yang kompleks. Saat ini, Java tidak hanya digunakan untuk web programming, tetapi juga digunakan untuk mengembangkan standar aplikasi sesuai kerangka pada server, desktop, dan perangkat mobile.
32
2. 2.7 Extensible Markup Language (XML) Menurut Fawcett, Quin, & Ayers (2012, p. 3-4), Extensible Markup Language (XML) adalah bahasa markup yang memiliki fungsi untuk membedakan suatu informasi dengan informasi lainnya dan dapat digunakan untuk mendesain tampilan menu. Kelemahan XML adalah dapat bertukar data dengan perangkat lunak yang berbeda.
2. 2.8 JavaScript Object Notation (JSON) Menurut Fawcett, Quin, & Ayers, (2012, p. 646) JSON adalah suatu format pertukaran data yang ringan, mudah dibaca serta mudah diterjemahkan dan dihasilkan oleh komputer. Format berbasis teks yang digunakan untuk mempresentasikan struktur data sederhana dan menggunakan bahasa pemrograman yang sering ditemukan (fleksibel). Bahasa pemrograman itu meliputi C, C#, C++, JavaScript dan lainnya. Format JSON sering digunakan untuk mentransmisikan data tertruktur melalui koneksi jaringan. Terutama untuk pengiriman data antara server dan aplikasi baik web, deskop, dan perangkat mobile.
2. 2.9 PHP Menurut Welling & Thomson (2009,p. 2), PHP adalah server-side scripting language yang dirancang khusus untuk website. Dalam halaman HTML, dapat dimasukan kode PHP yang akan dieksekusi setiap kali halaman website dikunjungi. Kode PHP akan diterjemahkan pada web server dan diubah menjadi HTML atau output lainnya yang dapat dilihat oleh pengunjung. PHP adalah bahasa open source di mana pengguna dapat mengakses source code.
2. 2.10 Codeigniter Menurut Griffiths (2010,p. 7), codeigniter adalah framework aplikasi website untuk bahasa PHP yang bersifat open-source. Codeigniter menyediakan fitur website aplikasi yang lengkap. Codeigniter menggunakan Model Views Controller (MVC) design pattern yang memudahkan dalam pengembangan website aplikasi.
33
CodeIgniter juga dilengkapi library dan kumpulan fungsi-fungsi yang digunakan dalam pengembangan website.
2. 2.11 MySQL Menurut Welling & Thomson (2009, p. 3), MySQL adalah Relational Database Management System (RDBMS) yang paling populer dan cepat, yang digunakan secara efisien dalam menyimpan, mencari,
mengurutkan,
dan
mengambil
data.
Server
MySQL
mengendalikan akses ke dalam data untuk memastikan pengguna dapat bekerja dalam waktu yang bersamaan, menyediakan akses secara cepat, dan memastikan hanya pengguna yang mempunyai hak akses. MySQL menggunakan SQL (Structured Query Language) yang merupakan bahasa standard dalam melakukan query database.
2. 2.12 Eclipse Menurut Cinar (2012, p. v), eclipse merupakan Integrated Development Environment (IDE) yang paling banyak dipakai oleh programmer Java. Pada masa kini, eclipse telah banyak digunakan sebagai IDE bagi pengembang aplikasi Android. Menurut Cinar (2012, p. 46-47), eclipse adalah Integrated Development Environment (IDE) yang akan digunakan dalam pengembangan Android. Eclipse bukan hanya editor code yang sederhana, melainkan juga sebagai platform yang kompleks untuk tools.
2. 2.13 Black Box Testing Menurut Pressman (2010, p. 484), black box testing adalah suatu pengujian yang ditujukan pada tampilan perangkat lunak. Black box testing memeriksa beberapa aspek penting dari sistem, seperti aspek yang dilihat hanya pada fungsionalitas dan output, lebih fokus pada hasil dan tanpa melihat proses yang terjadi di dalam sistem. Menurut Pressman (2010, p. 495), tujuan utama dari black box testing adalah mencari kesalahan atau error dengan kategori sebagai berikut. 1.
Mencari fungsi yang salah atau kurang.
2.
Mencari kesalahan pada tampilan.
34
3.
Mencari kesalahan pada struktur data atau akses database.
4.
Mencari kesalahan pada behavior atau performa.
5.
Mencari kesalahan pada inisialisasi (awal) dan akhiran.
2. 2.14 Restaurant Menurut Manask & Schechter (2002, p. 221-222), restaurant adalah kegiatan menyediakan pelayanan makanan dan minuman untuk umum yang berkisar dari menu yang kecil (misalnya, cafés) sampai menu yang besar dan fasilitas pelayanan yang lengkap yang menawarkan pelayanan sit down table dan pelayanan buffet, pelayanan cafeteria, dan self-service. 2. 2.15 Makanan Menurut Gibney et al. (2009, p. 9), makanan adalah suatu bahan dasar yang berasal dari hewan dan tumbuhan, yang dimakan oleh makhluk hidup untuk memberikan tenaga dan nutrisi. Makanan dapat membantu makhluk hidup dalam mengerjakan aktivitas sehari-hari.
2. 2.16 Promotion Menurut Nickels, McHugh, & McHugh (2010, p. 188), tujuan dengan dilaksanakan promotion adalah untuk memengaruhi masyarakat untuk berpatisipasi dalam pembelian. Promotion juga bertujuan untuk memotivasi masyarakat untuk membeli produk atau jasa sebuah perusahaan serta menjadi sarana untuk membangun hubungan dengan pelanggan.
2. 2.17 Social Media Menurut Tuten (2008, p.20), social media mengacu pada komunitas online yang bersifat partisipatif, percakapan, dan kesatuan. Komunitas-komunitas ini memungkinkan setiap members untuk memproduksi,
mempudlikasikan,
mengkontrol,
berinteraksi dengan konten online tersebut.
mendukung,
dan
35
2. 2.18 Android 1.
Definisi Android Menurut Cinar (2012, p. v), Android adalah mobile platform yang lengkap, open, dan gratis, serta menawarkan kesempatan yang tidak terbatas untuk pengembang aplikasi mobile. Menurut Cinar (2012, p. 2), tujuan dari proyek Android open source adalah untuk menyediakan open platform untuk mengembangkan mobile experience bagi pengguna.
2.
Sifat-Sifat Android Penjelasan mengenai sifat-sifat Android menurut Cinar (2012, p. 2) adalah sebagai berikut. 1.
Lengkap Android platform merupakan mobile platform yang aman dan mudah di-upgrade dengan framework yang lengkap serta interface yang terdefinisi dengan baik. Hal ini memungkinkan pengembang aplikasi untuk dapat mengembangkan dan membaurkan aplikasi yang mereka kembangkan ke dalam platform.
2.
Open Android platform telah dikembangkan dan disediakan di bawah lisensi open source apache. Pengembang memiliki akses penuh pada fitur dan service perangkat selama mengembangkan aplikasi.
3.
Gratis Android platform tidak memerlukan biaya apa pun terhadap
lisensi,
membership
atau
sertifikasi
dalam
mengembangkan aplikasi. Source code platform ini disediakan secara gratis untuk pengembang aplikasi. Pengembang platform perangkat lunak tersedia bagi banyak sistem operasi desktop,
memungkinkan
pengembang
aplikasi
untuk
mengembangkan aplikasi dengan menggunakan sistem operasi pilihan mereka.
36
2.3
Hasil Penelitian atau Produk Sebelumnya Aplikasi sejenis yang ditemukan, yaitu OpenRice yang tersedia di beberapa negara, seperti Indonesia, Hongkong, Singapore, Malaysia, dan India. Dalam hal ini, OpenRice yang akan dibahas adalah OpenRice Indonesia. Menurut Telebus (2009), OpenRice adalah panduan makanan secara online yang ditulis oleh pengguna lokal, dengan sebuah search engine mengenai restaurant yang lengkap dan sebuah platform bagi pengguna untuk menulis review tentang restaurant yang pernah mereka kunjungi. Terdapat lebih dari 71.000 restaurant di Indonesia yang dapat ditemukan dalam OpenRice, yang telah dikategorikan menjadi cuisine, district, dan rentang harga untuk mempermudah pencarian restaurant bagi pengguna. Pengguna dapat mengetahui informasi lebih rinci mengenai masing-masing review dan gambar restaurant, bahkan menambahkan restaurant ke dalam favorite. Pengguna diberikan kebebasan dalam melakukan post review restaurant dan sharing dengan pengguna lain.
Table 2.1: Perbandingan Aplikasi Sejenis dengan Aplikasi yang Sedang Dikembangkan
No.
Fitur
OpenRice
Aplikasi yang sedang
Indonesia
dikembangkan
1.
Search Restaurant
2.
Search Friend
3.
Search Food
4.
Search Promotion
5.
Invite Friend
6.
Comment
7.
Post Text
8.
Post Photo
9.
Tag Friend
10.
Tag Food
37
11.
Tag Restaurant
12.
GPS
13.
Promotion
14.
Favorites
15.
Profile User
16.
Profile Restaurant
17.
About Restaurant
18.
Rating of Restaurant
19.
Menu
20.
Description of Menu
21.
Taste of Menu
Share restaurant 22. information via email
and SMS
Berdasarkan perbandingan yang ditampilkan pada Tabel 2.2, OpenRice memiliki kelebihan, yaitu sebagai berikut. 1.
Dengan menggunakan aplikasi OpenRice, customer dapat menemukan restaurant dengan mudah dan cepat.
2.
OpenRice memungkinkan customer untuk menulis pendapat dan pandangan mereka mengenai sebuah restaurant yang pernah mereka kunjungi. Dalam hal ini, customer lain dapat mengirimkan komentar (comment). Ini menyebabkan terjadinya interaksi di antara customer.
3.
OpenRice memungkinkan customer untuk sharing user experience melalui review yang ditulis. User experinece tidak hanya sekadar menjadi memory secara personal, tetapi juga dapat membawa inspirasi bagi customer lain.
Sementara itu, kekurangan OpenRice adalah sebagai berikut. 1.
OpenRice bukan merupakan aplikasi yang berbasis social media, melainkan aplikasi sejenis blog.
2.
Dalam review yang ditulis, customer tidak dapat menandai (tag) friend, food, dan restaurant yang diinginkan.
38
3.
OpenRice tidak memungkinkan customer untuk mengirimkan komentar (comment) pada gambar yang di-post oleh customer lain.
4.
OpenRice tidak memungkinkan customer untuk mencari (search) menu dan memberikan rating mengenai cita rasa pada menu makanan.
5.
OpenRice tidak memungkinkan customer untuk mendapatkan informasi langsung dari restaurant, melainkan customer hanya bisa mendapatkan informasi restaurant dari review yang ditulis customer lain.