BAB 2 TINJAUAN PUSTAKA 2.1 Pengertian Data Menurut (Fathansyah, 2012, p2), data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, siswa, pembeli, pelanggan), barang hewan, peristiwa, konsep, keadaan, dan sebagainya, yang diwujudkan dalam bentuk angka, huruf, simbol, teks, gambar, bunyi, atau kombinasinya. 2.2 Pengertian Entitas Connolly & Begg (2010, p65) menyatakan bahwa entitas (entity) atau yang sering disebut tabel merupakan kumpulan objek berbeda (orang, tempat, benda, konsep, atau peristiwa) dalam organisasi yang akan direpresentasikan dalam basis data. 2.3 Pengertian Basis Data Basis data merupakan sekumpulan data logika yang saling berhubungan. Data tersebut kemudian di rancang untuk memenuhi kebutuhan informasi pada sebuah organisasi (Connolly & Begg, 2010, p65). 2.4 Pengenalan DBMS DBMS merupakan sebuah sistem perangkat lunak yang memberikan kebebasan kepada pengguna untuk mendefisinikan, membuat, memelihara, serta melakukan kontrol akses ke basis data (Connolly & Begg, 2010, p66). Fasilitas – fasilitas yang tersedia pada DBMS antara lain: 1. Data Definition Language (DDL) 9 10 Menurut Connolly & Begg (2010, p66), Data Definition Language adalah sebuah bahasa yang memungkinkan database administrator (DBA) atau pengguna untuk mendeskripsikan dan menamai entitas, atribut, dan relasi yang diperlukan untuk aplikasi, bersama dengan integritas dan keamanan yang terhubung. DDL memperbolehkan pengguna untuk menentukan basis data beserta tipe data, struktur dan constraints pada data yang nantinya akan disimpan dalam basis data (Connolly & Begg, 2010, p66). 2. Data Manipulation Language (DML) Menurut Connolly & Begg (2010, p66), Data Manipulation Language adalah sebuah bahasa yang menyediakan seperangkat operasi untuk mendukung operasi manipulasi data yang terdapat di database. DML memiliki dua tipe, antara lain: 1. Procedural DML — Bahasa yang memperbolehkan pengguna untuk memberitahu sistem mengenai data apa yang dibutuhkan dan cara untuk memperoleh data. 2. Non-procedural DML — Bahasa yang memperbolehkan pengguna untuk memberitahu data manakah yang diperlukan, namun tidak memberitahu bagaimana cara memperoleh data tersebut. 3. Menyediakan kontrol akses ke basis data, antara lain: 1. Security System — Mencegah pengguna yang tidak memiliki wewenang untuk mengakses ke dalam basis data. 2. Integrity System — Mempertahankan konsistensi data yang tersimpan. 3. Recovery Control System — Membantu mengembalikan basis data ke dalam keadaan yang konsisten jika sewaktu – waktu terjadi kegagalan perangkat keras maupun perangkat lunak. 4. User-Accessible Catalog — Berisikan deskripsi data dalam basis data. Dengan semua fungsionalitas ini, DBMS menjadi alat yang sangat kuat dan berguna. Namun, end-user tidak tertarik mengenai kompleks atau 11 tidaknya task dari sebuah sistem. Dapat dikatakan bahwa end-user akan berpendapat bahwa DBMS telah membuat suatu hal menjadi kompleks karena mereka sekarang melihat lebih banyak data dibandingkan yang mereka benar – benar butuhkan. Sebagai penyelesaian dari masalah ini, DBMS menyediakan fasilitas lain yang dikenal sebagai view mechanism, yang memperbolehkan setiap pengguna untuk memiliki masing – masing view ke basis data (Connolly & Begg, 2010, p67). Connolly & Begg (2010, p68) berpendapat bahwa dengan menggunakan view, selain mengurangi kompleksitas dengan memberikan data yang pengguna ingin lihat, view mempunyai keuntungan yang diantaranya: 1. View menyediakan level keamanan — View dapat diatur agar beberapa pengguna tidak dapat mengakses data tertentu. 2. View menyediakan sebuah mekanisme untuk menyesuaikan tampilan basis data. 3. View dapat merepresentasikan sebuah konsisten, gambaran yang tidak dapat diubah dari struktur basis data. 2.4.1 Komponen DBMS Dalam DBMS environment terdapat lima komponen utama (Connolly & Begg, 2010, p68-71), antara lain: 1. Perangkat keras (Hardware) Perangkat keras yang digunakan bergantung pada kebutuhan organisasi dan DBMS yang digunakan. Beberapa DBMS hanya berfungsi pada perangkat keras atau sistem operasi tertentu, sementara yang lain berjalan pada sebuah keberagaman perangkat keras dan sistem operasi yang luas. 2. Perangkat lunak (Software) Komponen perangkat lunak meliputi perangkat lunak DBMS itu sendiri beserta program aplikasi, bersama dengan sistem operasi dan perangkat lunak jaringan (network software) jika DBMS digunakan pada sebuah jaringan. Target dari DBMS adalah memiliki peralatan generasi keempat yang berkembang pesat dari aplikasi melalui ketentuan non- 12 procedural query languages, reports generators, forms generators, graphics generators, application generators. Penggunaan peralatan generasi keempat dapat meningkatkan produktivitas secara signifikan dan menghasilkan program yang lebih mudah untuk di-maintain. 3. Data Merupakan komponen utama yang paling penting dalam DBMS environment. Data berperan sebagai penghubung antara komponen mesin (perangkat keras dan perangkat lunak) dan komponen manusia (prosedur dan masyarakat). Basis data berisikan data operasional dan data inti (metadata). 4. Prosedur (Procedures) Prosedur mengacu pada instruksi dan peraturan yang mengatur desain dan penggunaan basis data. Pengguna sistem dan staff yang mengelola basis data memerlukan dokumentasi prosedur mengenai cara menggunakan dan menjalankan sistem. Berikut instruksi yang mungkin digunakan: a. Log on ke DBMS; Menggunakan fasilitas tertentu dari DBMS atau program aplikasi; 1. Start dan stop DBMS; 2. Membuat salinan cadangan dari basis data; 3. Menangani kegagalan perangkat keras atau perangkat lunak; 4. Mengubah struktur tabel, mengatur ulang basis data, meningkatkan kemampuan, atau mengarsipkan data ke dalam storage. 5. Masyarakat (People) Komponen terakhir dari DBMS adalah masyarakat yang terlibat dalam sistem. 13 Gambar 2. 1 DBMS Environment Connnolly & Begg (2010, p68) 2.4.2 Fungsi DBMS Menurut Connolly & Begg (2010, p99-104), DBMS memiliki sepuluh fungsi, antara lain: 1. Data storage, retrieval and update — DBMS harus dilengkapi dengan kemampuan untuk menyimpan, mengambil, dan memperbaharui data pada basis data. 2. A user-accessible catalog — DBMS harus memiliki katalog yang berisi deskripsi data item dan dapat diakses oleh pengguna. 3. Transaction support — DBMS harus mempunyai mekanisme yang menjamin bahwa semua update yang berhubungan dengan transaksi dapat dilakukan ataupun tidak dapat dilakukan. 4. Concurrency control services — DBMS harus memiliki mekanisme yang akan memastikan bahwa basis data dapat di-update ketika banyak pengguna yang melakukan update basis data secara bersamaan. 5. Recovery services — DBMS harus memiliki sebuah mekanisme untuk memastikan bahwa basis data dapat dipulihkan apabila terjadi kesalahan. 6. Authorization services — DBMS harus menyediakan mekanisme yang memastikan bahwa hanya pengguna yang berwenang dapat mengakses basis data. 7. Support for data communication — DBMS harus mampu berintegrasi dengan perangkat lunak komunikasi (communication software). 8. Integrity services — DBMS harus memiliki sarana yang menjamin bahwa data di dalam basis data maupun perubahan terhadap data telah mengikuti aturan – aturan tertentu. 14 9. Services to promote data independence — DBMS harus menyertakan fasilitas – fasilitas untuk mendukung ketidaktergantungan perangkat lunak terhadap struktur aktial dari basis data. 10. Utility services — DBMS harus menyediakan satu set layanan utilitas. 2.4.3 Keuntungan dan Kerugian DBMS Menurut Connolly & Begg (2010, p77-81), penggunaan DBMS memiliki beberapa keuntungan serta kerugian. Keuntungan DBMS antara lain: 1. Kontrol terhadap redudansi data. 2. Data yang konsisten. 3. Semakin banyak informasi yang di dapat dari data yang sama. 4. Data dapat dibagikan (sharing data). 5. Meningkatkan integritas data. 6. Meningkatkan keamanan data. 7. Penetapan standarisasi. 8. Memiliki skala ekonomi. 9. Menyeimbangkan konflik kebutuhan. 10. Memperbaiki pengaksesan data beserta responnya. 11. Meningkatkan produktivitas. 12. Meningkatkan concurrency. 13. Meningkatkan backup dan recovery. Kerugian DBMS antara lain: 1. Kompleks. 2. Ukuran yang besar. 3. Biaya dari DBMS itu sendiri. 4. Biaya penambahan perangkat keras. 5. Biaya dari konversi. 6. Performance. 7. Jika terjadi kegagalan dampaknya besar. 15 2.5 Relational Model Connolly & Begg (2010, p144-151) menyatakan bahwa relational model adalah konsep dasar matematika yang berhubungan dengan fisikal yang direpresentasikan dalam bentuk tabel. Relational model terdiri dari relational data structure dan relational keys sebagai berikut: Relational data structure: I. II. Relasi — Tabel yang memiliki kolom dan baris. Atribut — Kolom pada tabel. III. Domain — Batasan nilai pada satu atau lebih atribut. IV. Tuple — Baris pada tabel. V. VI. VII. Degree — Jumlah atribut pada tabel. Cardinality — Jumlah baris (tuple) pada tabel. Relational database — Sekumpulan tabel yang sudah di normalisasi dengan nama tabel yang berbeda. Relational keys: I. Superkey — Sebuah atribut atau sekumpulan atribut yang secara unik mengidentifikasi baris pada tabel. II. III. Candidate key — Kandidat atribut yang dapat dijadikan primary key. Primary key — Candidate key yang dipilih untuk mengidentifikasi baris pada tabel secara unik. IV. Foreign key — Sebuah atribut atau satu set atribut pada sebuah tabel yang memiliki (kemungkinan) candidate key yang sama. 2.5.1 Entity Relationship Modelling (ERD) Entity Relationship merupakan pemodelan menggunakan pendekatan top-down pada perancangan basis data yang dimulai dengan mengindentifikasi data – data penting yang disebut entity dan relationship antara data yang harus direpresentasikan dalam model (Connolly & Begg, 2010, p371). Terdapat dua jenis entity (Connolly & Begg, 2010, p383-384), yaitu strong entity dan weak entity: 16 I. Strong entity — Suatu entity yang sifatnya tidak bergantung kepada keberadaan entity lain. II. Weak entity — suatu entity yang keberadaannya bergantung kepada entity lain. Gambar dibawah menjelaskan strong entity Client dan weak entity Preference. Entity Client dapat berdiri sendiri tanpa bergantung pada entity Preference. Namun, entity Preference tidak dapat berjalan jika tidak ada entity Client. Gambar 2. 2 Strong Entity & Weak Entity Connnolly & Begg (2010, p384) 2.5.2 Atribut (Attribute) Atribut merupakan sebuah properti dari suatu entity atau tipe relasi (disebut juga sebagai kolom tabel). Sedangkan domain atribut (attribute domain) adalah nilai – nilai yang diperbolehkan dalam satu atau lebih atribut (Connolly & Begg, 2010, p379). Menurut Connolly & Begg (2010, p379-380), atribut dapat diklasifikasikan sebagai: simple attribute, composite attribute, single-valued attribute, multi-valued attribute, dan derived attribute. 1. Simple attribute — Atribut yang terdiri dari komponen tunggal yang keberadaannya independen. 17 2. Composite attribute — Atribut yang terdiri dari beberapa komponen, dimana masing – masing komponen keberadaannya independen. 3. Single-valued attribute — Atribut yang memiliki nilai tunggal untuk setiap kejadian dari suatu entity. 4. Multi-valued attribute — Atribut yang memiliki beberapa nilai untuk setiap terjadinya suatu jenis entity. 5. Derived attribute — Atribut yang mewakili nilai yang diturunkan dari nilai atribut terkait atau set atribut, tetapi belum tentu dalam jenis entity yang sama. 2.5.3 Structural Constraint Menurut Connoly & Begg (2010, p385), multiplicity adalah jumlah (atau range) kemungkinan kejadian dari jenis entity yang berhubungan dengan kejadian tunggal pada entity yang terkait melalui hubungan tertentu. Multiplicity membatasi hubungan dari entity yang terkait. Hal ini merupakan representasi dari kebijakan (atau aturan bisnis) yang diterapkan oleh pengguna atau perusahaan. Memastikan bahwa semua constraints dapat diidentifikasi dan direpresentasi merupakan bagian penting dari pemodelan suatu perusahaan. Connolly & Begg (2010, p386-389) menyatakan bahwa ada berbagai jenis relationship yang mungkin terjadi pada multiplicity, diantaranya: 1. One-to-One Relationship (1:1) Hubungan antara satu anggota entity dengan tepat satu anggota dari entity yang lain. Gambar 2. 3 Contoh One-to-One Relationship Connnolly & Begg (2010, p386) 18 2. One-to-Many Relationship (1:*) Hubungan antara satu anggota entity dengan satu ataupun lebih anggota dari entity yang lain, diasosiasikan dengan tepat satu anggota dari entity pasangannya. Gambar 2. 4 Contoh One-to-Many Relationship Connnolly & Begg (2010, p388) 3. Many-to-Many Relationship (*:*) Hubungan antara satu entity dengan lebih dari satu anggota dari entity yang lain, begitu juga sebaliknya. Satu anggota entity yang lain dapat diasosiasikan dengan lebih dari satu anggota pasangannya. Gambar 2. 5 Contoh Many-to-Many Relationship Connnolly & Begg (2010, p389) 19 2.6 Normalisasi Connolly & Begg (2010, p415) menyatakan bahwa normalisasi adalah teknik untuk menghasilkan satu set relasi dengan ketentuan yang diinginkan, sesuai dengan kebutuhan data dari perusahaan. Tujuan dari normalisasi yaitu untuk mengidentifikasi satu set yang memiliki hubungan yang sesuai untuk mendukung kebutuhan data sari suatu perusahaan. Adapun proses dari normalisasi (Connolly & Begg, 2010, p429-436, 447-458), antara lain: i. Unnormalized Form (UNF) — Sebuah tabel yang berisi satu atau lebih grup yang berulang. ii. First Normal Form (1NF) — Suatu relasi dimana titik potong (intersection) pada setiap baris dan kolom berisi tepat hanya satu nilai. iii. Second Normal Form (2NF) — Suatu relasi yang ada pada 1NF dimana setiap atribut non-primary-key sepenuhnya bergantung secara fungsional (functionally dependent) pada primary key. iv. Third Normal Form (3NF) — Suatu relasi yang ada pada 1NF dan 2NF dimana tidak ada atribut non-primary-key yang bergantung secara transitif kepada primary key. v. Boyce-Codd Normal Form (BCNF) — Sebuah relasi termasuk dalam BNF, jika dan hanya jika, setiap determinan merupakan candidate key. vi. Fourth Normal Form (4NF) — Suatu relasi dalam bentuk BCNF dan tidak mengandung dependensi yang multi-value yang nontrivial. vii. Fifth Normal Form (5NF) — Suatu relasi yang tidak memiliki join dependency. 2.7 Database System Development Lifecycle Sistem basis data merupakan komponen fundamental dari sistem informasi pada sebuah organisasi, database system development lifecycle ikut berasosiasi dengan lifecycle dari sistem informasi (Connolly & Begg, 2010, p313). Menurut Connolly & Begg (2010, p313-336), adapun tahapan dari database system development lifecycle adalah sebagai berikut: 20 Gambar 2. 6 Tahapan Database System Development Lifecycle Connnolly & Begg (2010, p314) 21 Keterangan setiap tahapan dari Database System Development Lifecycle adalah sebagai berikut: 1. Database Planning Pada tahap ini menjelaskan mengenai kegiatan manajemen yang memungkinkan tahapan database system development lifecycle untuk direalisasikan seefisien dan seefektif mungkin. 2. System Definition Pada tahap ini menjelaskan mengenai ruang lingkup dan batasan pada aplikasi sistem basis data, penggunaannya, serta bagaimana pandangan dari pengguna utama. 3. Requirements Collection and Analysis Pada tahap ini menjelaskan mengenai proses pengumpulan dan analisis informasi yang dibutuhkan organisasi dimana didukung oleh sistem basis data. 4. Database Design Database design merupakan proses membuat rancangan desain basis data yang akan mendukung misi serta tujuan perusahaan untuk menentukan sistem basis data yang diperlukan. Terdapat dua pendekatan utama dalam database design: 1. Bottom-up approach Pendekatan dimulai dari atribut dasar kemudian dilakukan analisa hubungan antar atribut yang dikelompokkan ke dalam suatu relasi yang merepresentasikan tipe relasi entitas serta relationship antar entitas. 2. Top-down approach Pendekatan dimulai dari pengembangan model data yang berisi beberapa entitas serta relationship tingkat tinggi. Setelah itu, dilakukan pendekatan top-down secara berurutan untuk mengidentifikasi entitas dan atribut tingkat rendah serta relationship yang berhubungan. Pendekatan top-down direpresntasikan dalam konsep Entity-Relationship Model (ERD). Database design dibagi menjadi tiga tahapan utama, antara lain: 1. Conceptual database design 22 Proses pembuatan model data yang digunakan dalam suatu perusahaan, agar dapat independen dari semua masalah fisik. Pertimbangan yang dimaksud berupa DBMS yang dipakai, program aplikasi, bahasa pemograman, ataupun hardware paltform. Berikut langkah – langkah membangun model data konseptual (Connolly & Begg, 2010, p467): 1. Mengidentifikasi tipe entitas Tujuannya adalah untuk mengidentifikasi tipe entitas yang diperlukan. 2. Mengidentifikasi tipe relasi Tujuannya adalah untuk mengidentifikasi relasi penting antara tipe entitas yang telah diidentifikasi. 3. Mengidentifikasi dan menghubungkan atribut dengan entity type atau relationship type Tujuannya adalah untuk menghubungkan atribut – atribut dengan tipe entitas atau relasi yang sesuai. 4. Menentukan domain atribut Tujuannya adalah untuk menentukan domain atau kumpulan nilai – nilai dalam satu atau lebih atribut dari masing – masing atribut dalam model data konseptual. 5. Menentukan candidate key, primary key, dan alternate key Tujuannya adalah untuk mengidentifikasi candidate key untuk setiap tipe entitas. Jika terdapat lebih dari satu candidate key, maka akan dipilih salah satu untuk dijadikan primary key dan yang lain akan menjadi alternate key. 6. Mempertimbangkan untuk penggunaan enhanced modelling concept (optional) Tujuannya adalah untuk mempertimbangkan penggunaan konsep enhanced modelling seperti specialization/generalization, aggregation, dan composition. 7. Mengecek redudansi pada model 23 Tujuannya adalah untuk memeriksa apakah ada redundansi pada data model. Pada tahap ini terdapat tiga aktifitas, antara lain: 1. Menguji ulang hubungan one-to-one (1:1) relationships 2. Menghilangkan hubungan yang berulang 3. Mempertimbangkan dimensi waktu (time dimensions) 8. Memvalidasi model data konseptual lokal dengan transaksi pengguna Tujuannya adalah untuk memastikan model konseptual telah mendukung transaksi yang diperlukan perusahaan. 9. Meninjau kembali model konseptual lokal dengan pengguna Tujuannya adalah untuk memastikan bahwa model sudah merupakan representasi data yang sebenarnya dari permintaan perusahaan. 2. Logical database design Proses membangun model data logikal yang digunakan dalam suatu perusahaan berdasarkan data model tertentu, namun tidak bergantung pada DBMS tertentu dan pertimbangan fisik lainnya. Berikut langkah – langkah membangun model data logikal (Connolly & Begg, 2010, p467): 1. Menurunkan relasi untuk model data logikal Tujuannya adalah untuk membuat hubungan model data logikal dalam mepresentasikan entitas, relationship, dan atribut yang sudah diidentifikasi. 2. Memvalidasi relasi menggunakan proses normalisasi Tujuannya adalah untuk memvalidasi relasi dalam model data logikal menggunakan normalisasi. 3. Memvalidasi relasi dengan transaksi pengguna Tujuannya adalah untuk memastikan bahwa relasi dalam model data logikal sudah mendukung transaksi yang dibutuhkan. 4. Memeriksa integrity constraint 24 Tujuannya adalah untuk memeriksa batasan – batasan yang digunakan guna menjada konsistensi data. Ada lima tipe integrity constraint, antara lain: 1. Required data 2. Batasan Domain Atribut 3. Entity Integrity 4. Referential integrity 5. Enterprise Constraint 5. Memeriksa kembali model data logikal dengan pengguna Tujuannya adalah untuk memastikan bahwa model data logikal beserta dokumentasi pendukung yang menggambarkan model merupakan perwakilan yang benar berdasarkan point of view pengguna atau perusahaan. 6. Menggabungkan model data logikal menjadi model data global (optional) Tujuannya adalah untuk menggabungkan model data logikal menjadi model data global tunggal dimana telah merepresentasikan keseluruhan user view pada basis data. 7. Memeriksa perkembangan di masa depan Tujuannya adalah untuk menentukan apakah ada perubahan – perubahan tertentu di masa depan serta menilai apakah model data logikal dapat menangani perubahan tersebut. 3. Physical database design Proses pembuatan deskripsi dari suatu implementasi basis data pada penyimpanan sekunder; menggambarkan hubungan dasar, file organisasi dan indeks yang digunakan untuk mencapai akses yang efisien terhadap data, kendala integritas terkait berserta langkah – langkah keamanan. Berikut langkah – langkah membangun model data fisikal (Connolly & Begg, 2010, p467): 1. Menerjemahkan model data logikal untuk DBMS yang digunakan 25 Tujuannya adalah untuk menghasilkan skema basis data relasional dari model data logikal yang dapat diimplementasikan dalam DBMS yang dituju. Aktivitas dalam tahapan ini antara lain: a. Merancang relasi dasar — Menentukan bagaimana merepresentasikan relasi dasar yang sudah diidentifikasi dalam model data logikal ke dalam DBMS yang dituju. b. Merancang representasi derived data — Menentukan bagaimana merepresentasikan setiap derived data dalam model data logikal ke dalam DBMS yang dituju. c. Merancang general constraints — Merancang general constraints untuk DBMS yang dituju. 2. Merancang file organization dan indeks Tujuannya adalah untuk menentukan organisasi file yang efisien untuk setiap relasi dasar dan menentukan apakah penambahan indeks diperlukan untuk meningkatkan kinerja dari sistem yang berjalan. Aktivitas dalam tahapan ini antara lain: a. Menganalisa transaksi — Untuk memahami fungsionalitas dari transaksi yang akan berjalan pada basis data dan untuk menganalisa transaksi penting. b. Memilih file organization — Untuk menentukan file organisasi yang efisien untuk setiap relasi dasar. c. Memilih indeks — Untuk menetukan apakah menambahkan indeks akan meningkatkan kinerja sistem atau tidak. d. Memperkirakan kebutuhan disk space — Untuk memperkirakan jumlah disk space yang akan dibutuhkan oleh basis data. 3. Merancang user view Tujuannya adalah untuk merancang user view yang diidentifikasi selama tahap pengumpulan kebutuhan dan analisis pada database system development lifecycle. 26 4. Merancang mekanisme keamanan Tujuannya adalah untuk merancang mekanisme keamanan untuk basis data seperti yang ditentukan oleh pengguna pada tahapan awal database system development lifecycle. 5. Mempertimbangkan adanya pengontrolan redundansi Tujuannya adalah untuk menentukan apakah dengan adanya pengontrolan redundansi akan meningkatkan kinerja dari sistem. 6. Mengawasi dan mengendalikan sistem operasional Tujuannya adalah untuk mengawasi sistem operasional jika sewaktu – waktu di masa depan perusahaan ingin melakukan perbaikan pada sistem. 5. DBMS Selectional (optional) Memilih DBMS yang sesuai untuk membantu mendukung sistem basis data. 6. Application Design Proses perancangan user interface bagi pengguna dan program aplikasi yang menggunakan dan memproses basis data. 7. Prototyping (optional) Proses membangun working model dari sistem basis data. Hasil dari prototype akan membantu perancang untuk melakukan evaluasi fungsionalitas sistem. 8. Implementation Pada tahap ini dilakukan realisasi fisik dari basis data dan desain aplikasi. 9. Data Conversion and Loading Pada tahap ini dilakukan transfer atau konversi data dan aplikasi lama ke dalam basis data yang baru. 10. Testing Pada tahap ini dilakukan proses menjalankan sistem basis data dengan tujuan untuk mencari kesalahan (error) pada aplikasi. Selain itu dilakukan juga validasi terhadap aplikasi atas kebutuhan – kebutuhan yang telah ditentukan oleh pengguna. 27 11. Operational Maintenance Pada tahap ini menjelaskan mengenai proses pemantauan dan pemeliharaan sistem basis data. Performa sistem akan diawasi secara berkala, jika ditemukan performa sistem menurun, reorganisasi terhadap sistem basis data akan diperlukan. 2.8 Pengenalan Mall Directory Secara umum, mall directory merupakan panduan direktori yang disediakan oleh pihak mall kepada pengunjung mall yang bertujuan untuk memberikan informasi yang lebih spesifik mengenai toko – toko (tenant) tertentu yang ada di dalam mall tersebut. 2.8.1 Pengertian Mall Mall adalah suatu tempat berkumpulnya peritel yang menjual aneka barang dan jasa yang dibutuhkan baik pribadi maupun rumah tangga (Ma’ruf, 2005, p79). Namun, tidak hanya itu saja, mall juga dapat menjadi pusat inetraksi sosial dan kegiatan rekreasi. Toko (tenant), restoran, bioskop, food court, area bermain anak, area relaksasi dan area promosi membentuk komponen utama dari sebuah mall. 2.8.2 Pengertian Directory Menurut Oxford (2008, p125), direktori (directory) adalah buku yang berisikan daftar nama, alamat, dan nomor telpon. Jurnal “Shopping Mall Directory: A Detailed/-Guide Application for Android-Based Mobile Devices” (VijayaPrasad, P., Fadzlina, N., Saadi, M., Elfaki, A. O., Saadi, B., 2013), menyatakan bahwa pada penelitian yang dilakukan mengenai aplikasi mall directory, direktori dalam mall directory berfungsi untuk membantu menentukan alamat atau lokasi toko yang berada di dalam mall. 28 2.8.3 Pengertian Mall Directory Menurut Dari penyataan mengenai mall dan directory diatas, dapat disimpulkan bahwa mall directory membantu pengunjung mall dalam melakukan pencarian tempat yang ingin dituju adapun itu toko (tenant), restoran, bioskop, atau fasilitas lainnya yang ada pada mall tersebut. Dengan adanya mall directory ini, pengunjung dapat menghemat waktu pencarian lokasi yang ingin dituju. 2.8.4 Jenis-jenis Mall Directory Berdasarkan hasil survey yang penulis lakukan ke beberapa mall, penulis menemukan bahwa setiap mall menyediakan tipe mall directory yang berbeda – beda, antara lain: a. Digital Directory — Direktori disediakan dalam bentuk digital, dimana tampilan direktori tenant beserta fitur lainnya seperti mall event disajikan pada layar touch screen. b. Board Directory — Direktori disediakan dalam bentuk peta yang berisikan lokasi tenant di dalam mall dan dibingkai pada sebuah papan besar. 2.9 GPS (Global Positioning System) GPS adalah sistem navigasi yang memberikan informasi koordinat posisi guna membantu menentukan titik lokasi tertentu. Manfaat dari GPS adalah pengguna dapat menandai lokasi mana yang pernah dikunjungi serta membantu memperkirakan jarak dari suatu tempat ke tempat lainnya. 2.9.1 Pengertian GPS GPS atau Global Positioning System merupakan sistem navigasi berdasarkan satelit yang dikembangkan oleh United States Department of Defense (DoD) pada tahun 1970. Pada dasarnya, GPS dikembangkan sebagai sistem militer untuk memenuhi kebutuhan militer Amerika Serikat. Namun seiring dengan berjalannya waktu, pada masa kini GPS telah tersedia untuk warga sipil dimana GPS menggunakan dual-system yang dapat diakses oleh 29 pengguna di kalangan militer dan warga sipil. GPS menyediakan informasi mengenai pengaturan tempat dan timing secara berkala, dimanapun dan dalam kondisi cuaca apapun di seluruh bumi. Dikarenakan GPS melayani jumlah pengguna yang sangat banyak dan digunakan juga untuk alasan keamanan, GPS disebut sebagai sistem yang pasif. Artinya, pengguna hanya dapat menerima sinyal yang didapat dari satelit (El-Rabbany, 2006, p1). GPS terdiri dari 24 satelit operasional. Konstelasi dari satelit – satelit tersebut dikenal sebagai Initial Operational Capability (IOC), yang dibuat pada tahun 1993. Untuk memastikan GPS dapat mencakup seluruh dunia secara berkala, satelit GPS diatur sedemikian rupa sehingga empat satelit ditempatkan di masing – masing enam orbital pesawat (Gambar 2.7). Dengan konstelasi geometri ini, empat hingga sepuluh satelit GPS dapat menampilkan titik lokasi di dunia (El-Rabbany, 2006, p2). Gambar 2. 7 Konstelasi GPS (El-Rabbany, 2006, p2) 2.9.2 Daerah Kerja GPS Menurut El-Rabbany (2006, p2-3), GPS terdiri atas tiga segmen antara lain space segment, control segment, dan user segment (Gambar 2.8). Penjelasan mengenai ketiga segmen GPS sebagai berikut: 1. Space Segment Terdiri dari konstelasi 24 satelit. Setiap satelit GPS mentransmisi sinyal yang memiliki sejumlah komponen: dua sinewaves (dikenal juga sebagai frekuensi pembawa / carrier frequency), dua kode digital, dan sebuah pesan navigasi. Pesan kode dan navigasi ditambahkan kedalam pembawa sebagai 30 bifase biner modulasi. Pembawa dan kode digunakan untuk menentukan jarak dari pengguna dengan satelit GPS. Pesan navigasi berisi informasi, koordinat lokasi dari satelit yang sedang berfungsi. Sinyal yang ditransmisikan dikendalikan dengan sangat akurat oleh jam atomik di dalam satelit. 2. Control Segment Segmen kontrol dari sistem GPS terdiri dari jaringan stasiun pelacakan (tracking stations) di seluruh dunia, dengan master control station (MCS) yang berlokasi di Colorado Springs, Colorado, Amerika Serikat. Tugas utama dari segmen kontrol operasional adalah melakukan pelacakan satelit GPS untuk menentukan dan memprediksi lokasi satelit, integritas sistem, perilaku dari jam atomik satelit, data atmosfer, almanak satelit, dan konsiderasi lainnya. Informasi ini kemudian dikemas dan diunduh kedalam satelit GPS melalui S-band link. 3. User Segment Segmen pengguna mencakup semua pengguna baik militer maupun sipil. Dengan sebuah penerima GPS yang terhubung dengan antena GPS, pengguna dapat menerima sinyal GPS yang dapat digunakan untuk menentukan posisi pengguna di mana saja di seluruh dunia. GPS saat ini tersedia untuk siapapun di seluruh dunia tanpa dikenakan biaya. 31 Gambar 2. 8 Segmen GPS (El-Rabbany, 2006, p3) 2.9.3 Cara Kerja GPS Menurut El-Rabbany (2006), setiap satelit GPS secara berkala mengirim microwave radio signal yang terdiri dari dua pembawa, dua kode, dan sebuah pesan navigasi. Ketika penerima GPS (GPS receiver) menyala, ia akan mengambil sinyal GPS melalui antena penerima. Setelah menerima sinyal, kemudian akan diproses menggunakan built-in software. Hasil parsial dari pemrosesan sinyal terdiri atas jarak satelit menuju GPS melalui kode digital dan satelit akan mengkordinasi pesan navigasi. Secara teoritis, hanya dibutuhkan tiga jarak menuju tiga satelit pelacak secara bersamaan. Dalam hal ini, penerima akan ditempatkan dalam persimpangan dari tiga bidang; masing – masing memiliki radius satu jarak dari satelit-penerima dan berpusat pada satelit tertentu (Gambar 2.9). 32 Gambar 2. 9 Ide Dasar Pengaturan Satelit GPS (El-Rabbany, 2006, p9) Akurasi yang diperoleh melalui metode yang dijelaskan sebelumnya masih terbatas hingga 100 meter untuk komponen horisontal, 156 meter untuk komponen vertikal, dan 340 nanodetik untuk komponen waktu, semua tergabung dalam 95% level kemungkinan. Tingkat keakuratan yang rendah ini dikarenakan oleh teknik selective availability, yaitu sebuah teknik yang digunakan dengan sengaja untuk menurunkan akurasi otonom real-time positioning bagi pengguna yang tidak berhak (unauthorized user). Untuk lebih mengingkatkan keakuratan posisi GPS, digunakan metode yang disebut metode diferensial. Metode ini menggunakan dua alat penerima (receiver) yang secara bersamaan melacak satelit GPS yang sama. Dalam hal ini, posisi tingkat kakuratan untuk beberapa meter dapat diperoleh. 2.9.4 Ketidakakuratan pada GPS Menurut El-Rabbany (2006, p27), pengukuran pseudorange dan carrier-phase pada GPS keduanya dipengaruhi oleh beberapa jenis error dan bias (kesalahan sistematis). Kesalahan ini dapat diklasifikasikan berasal dari satelit, penerima, dan propagasi sinyal. DOD terus memantau orbit satelit mencari kesalahan atau penyimpangan dari nilai prediksi. Setiap penyimpangan (dapat disebabkan oleh fenomena atmosfer alam seperti gravitasi), dikenal sebagai kesalahan ephemeris. Ketika terjadi kesalahan ephimeris saat GPS bekerja, kesalahan tersebut akan dikirimkan kembali ke satelit, yang dimana akan membroadcast pesan yang berisi kesalahan tersebut kepada GPS receiver 33 dimana dapat menurunkan tingkat keakuratan hasil data titik lokasi yang diperoleh. Sebagai tambahan dari jenis kesalahan yang mempengaruhi ketidakakuratan pengukuran GPS yang telah dijelaskan diatas, keakutaran penghitungan posisi GPS juga dipengaruhi oleh lokasi gemoetris dari satelit GPS seperti yang terlihat oleh penerima. Semakin menyebar posisi satelit yang berada di langit, semakin baik akurasi yang diperoleh (El-Rabbany, 2006, p27) (Gambar 2.10). Gambar 2. 10 GPS Error dan Bias (El-Rabbany, 2006, p28) 2.10 Pengenalan Android Android adalah sistem operasi mobile yang berbasis Linux. Android menyediakan platform open source bagi developer agar dapat menciptakan aplikasi mereka sendiri untuk digunakan di berbagai macam device Android. 2.10.1 Pengertian Android Lee (2011, p2) menyatakan bahwa Android adalah sistem operasi mobile yang didasarkan pada versi modifikasi dari Linux. Pada awalnya 34 dikembangkan oleh startup dengan nama yang sama, Android, Inc. Pada tahun 2005, sebagai bagian dari strategi untuk memasuki ruang lingkup mobile, Google membeli dan mengambil alih Android serta pengerjaannya (termasuk tim pengembang Android). Google ingin Android untuk terbuka dan bebas; oleh karena itu, sebagian besar kode pada Android dirilis di bawah open-source Apache License, yang berarti siapapun yang ingin menggunakan Android dapat melakukannya dengan mengunduh penuh sumber kode (soure code) Android. Selain itu, vendor (biasanya produsen hardware) dapat menambah ekstensi milik mereka sendiri kedalam Android dan menyesuaikan produk Android mereka untuk dapat dibedakan dengan produk milik vendor lain. Model pengembangan yang sederhana ini membuat Android menjadi sangat menarik dan mengundang ketertarikan dari banyak vendor. Keuntungan utama dari Android adalah Android menawarkan pendekatan terpadu terhadap pengembangan aplikasi. Pengembang (developers) hanya perlu mengembangkan untuk Android, dan aplikasi mereka dapat berjalan di berbagai jenis perangkat yang berbeda selama perangkat tersebut didukung oleh Android. Dalam dunia smartphone, aplikasi merupakan bagian terpenting dari rantai kesuksesan. Oleh karena itu, produsen pengembangan perangkat melihat Android sebagai harapan terbaik mereka untuk menantang produk iPhone (Lee, 2011, p2). Menurut Krajci, Cummings (2014, p6-8), Android memiliki versi – versi sebagai berikut: i. Android versi 1.0 (November 2007 beta version, September 2008 public version). ii. Android versi 1.5 Cupcake (30 April 2009). iii. Android versi 1.6 Donut (15 September 2009). iv. Android versi 2.0/2.1 Éclair (2.0 pada 26 Oktober 2009, 2.1 pada 2 Desember 2009). v. Android versi 2.2 Froyo (20 Mei 2010). vi. Android versi 2.3 Gingerbread (6 Desember 2010). vii. Android versi 3.0 Honeycomb (Februari 2011). viii. Android versi 4.0 Ice Cream Sandwich (19 Oktober 2011). 35 ix. Android versi 4.1 Jelly Bean (9 Juli 2012). x. Android versi 4.4 KitKat (3 September 2013). 2.10.2 Fitur - Fitur Android Lee (2011, p3) menyatakan bahwa Android adalah open-source dan tersedia secara bebas bagi manufaktur untuk dilakukan kustomisasi. Tidak ada konfigurasi khusus yang digunakan untuk hardware maupun software yang digunakan. Namun, Android itu sendiri mendukung beragam fitur sebagai berikut: 1. Storage — Menggunakan SQLite, database relasional ringan untuk penyimpanan data. 2. Connectivity — Mendukung GSM / EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, WiFi, LTE, WiMAX. 3. Messaging — Mendukung SMS dan MMS. 4. Web browser — Berdasarkan WebKit opensource, bersama dengan mesin V8 JavaScript Chrome. 5. Media support — Termasuk dukungan untuk media sebagai berikut: H.263, H.264 (dalam 3GP atau MP4 kontainer), MPEG-4 SP, AMR, AMR-WB (dalam kontainer 3GP), AAC, HE-AAC (dalam MP4 atau 3GP kontainer), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, dan BMP. 6. Hardware support — Sensor Accelometer, Kamera, Kompas Digital, Sensor Proximity, dan GPS. 7. Multi-touch — Mendukung layar multi-touch. 8. Multi-tasking — mendukung aplikasi multi-tasking. 9. Flash support — Android 2.3 mendukung Flash 10.1. 10. Tethering — Mendukung wired/wireless hotspot. berbagi koneksi internet sebagai 36 2.10.3 Arsitektur Android Menurut Lee (2011, p3-4), untuk memahami bagaimana Android bekerja, Gambar 2.11 akan menjelaskan beragam lapisan (layers) yang membentuk sistem operasi Android (operating system / OS). Gambar 2. 11 Android Layers Lee (2011, p3) Sistem Operasi Android dibagi menjadi lima bagian dalam empat lapisan utama: 1. Linux kernel — Kernel yang berbasiskan Android. Pada lapisan ini berisi semua perangkat lowlevel device untuk berbagai komponen hardware pada perangkat Android. 2. Libraries — Berisi semua kode yang menyajikan fitur utama dari sistem operasi Android. Misalnya, SQLite memberi dukungan basis data. WebKit library menyediakan fungsionalitas web browsing. 3. Android runtime — Pada lapisan yang sama dengan libraries, Android runtime menyediakan satu set core libraries yang 37 memungkinkan pengembang untuk mengembangkan aplikasi Android menggunakan bahasa pemograman Java. Android runtime juga termasuk mesin Dalvik virtual yang merupakan mesin virtual yang dirancang secara khusus untuk Android dan dioptimalkan untuk perangkat mobile bertenaga baterai dengan memori dan CPU yang terbatas. 4. Application framework — Mengekspos berbagai kemampuan sistem operasi Android untuk pengembang sehingga dapat digunakan ke dalam aplikasi mereka. 5. Applications — Pada lapisan teratas ini, akan ditemukan aplikasi yang dikirimkan melalui perangkat Android (seperti telepon, kontak, browser, dan lain – lain), serta aplikasi yang telah diunduh dan diinstall dari Android Market. Setiap aplikasi yang telah diinstall akan berada pada lapisan ini. 2.11 Unified Modelling Language (UML) UML merupakan seperangkat permodelan konvensi yang digunakan untuk menspesifikasikan atau menggambarkan sebuah sistem perangkat lunak yang terkait dengan objek (Whitten & Bentley, 2007, p371). UML terdiri dari beberapa tipe diagram, antara lain: 2.11.1 Use Case Diagram Menurut Whitten & Bentley (2007, p246), use case diagram menggambarkan interaksi antara sistem, eksternal sistem, dan pengguna. Dengan kata lain, secara grafis menggambarkan siapa yang akan menggunakan sistem dan bagaimana pengguna berinteraksi dengan sistem. Use case diagram juga menggambarkan urutan langkah setiap interaksi yang dilakukan. 38 Gambar 2. 12 Contoh Use Case Diagram Whitten & Bentley (2007, p246) Notasi yang digunakan dalam use case diagram: Tabel 2. 1 Notasi Use Case Diagram(a) (Whitten & Bentley, 2007, p247-249) Notasi Keterangan Use Case Urutan skenario, baik otomatis dan manual dengan tujuan menyelesaikan 1 task. Actor Sesuatu yang berinteraksi dengan sistem untuk bertukar informasi. 39 Tabel 2. 2 Notasi Use Case Diagram(b) (Whitten & Bentley, 2007, p247-249) Association Hubungan dimana aktor dan use case berinteraksi. Extend Menyederhanakan case dengan sumber use mewarisi fungsionalitas yang sama. Include (atau Uses) Use case yang mengurangi redundansi antara dua atau lebih use case. System Boundary Menggambarkan batasan use case dari sistem yang akan dibuat. 2.11.2 Use Case Narrative Saat mempersiapkan naratif – naratif yang akan digunakan, dianjurkan untuk melakukan dokumentasi pada high level untuk memperoleh pengertian dari event dan menentukan seberapa luas sistem yang akan dibangun. Kemudian, memberikannya kepada setiap use case dan memperluasnya menjadi sebuah naratif (Whitten & Bentley, 2007, p258). 40 Gambar 2. 13 Contoh Use Case Narrative Whitten & Bentley (2007, p259) 2.11.3 Activity Diagram Whitten & Bentley (2007, p390-391) berpendapat bahwa activity diagram merupakan diagram yang dapat digunakan untuk menggambarkan secara grafis aliran proses bisnis, langkah – langkah dari use case atau logika dari perilaku objek (metode). Penggunaan activity diagram sangat berguna untuk memodelkan tindakan yang akan dilakukan, seperti proses pemodelan 41 event yang menyebabkan window untuk ditampilkan atau ditutup. Activity diagram ini sangatlah fleksibel sehingga mereka dapat digunakan dalam analisis dan desain. 42 Gambar 2. 14 Contoh Activity Diagram Whitten & Bentley (2007, p392) 43 Notasi yang digunakan dalam activity diagram: Tabel 2. 3 Notasi Activity Diagram(a) (Whitten & Bentley, 2007, p391) Notasi Keterangan Initial node Merepresentasikan keadaan awal dari proses Actions Menggambarkan step – step aksi yang dilakukan dalam proses Flow Menunjukkan progress pada aksi Decision Simbol diamond dengan alur satu masuk dan dua atau lebih alur keluar. Merge Simbol diamond dengan dua atau lebih alur masuk dan dua atau lebih alur keluar. 44 Tabel 2. 4 Notasi Activity Diagram(b) (Whitten & Bentley, 2007, p391) Notasi Keterangan Fork Bar hitam dengan satu alur masuk dan satu alur keluar Join Bar hitam dengan dua atau lebih alur masuk dan satu alur keluar. Activity final Menunjukkan bahwa proses telah selesai 2.11.4 Sequence Diagram Menurut Whitten & Bentley (2007, p394), Sequence diagram adalah diagram yang menggambarkan interaksi antara aktor dan sistem dalam skenario use case. Sequence diagram membantu untuk mengidentifikasi pesan – pesan yang masuk dan keluar dari sistem. 45 Gambar 2. 15 Contoh Sequence Diagram Whitten & Bentley (2007, p395) 46 Notasi yang digunakan dalam sequence diagram: Tabel 2. 5 Notasi Sequence Diagram(a) (Whitten & Bentley, 2007, p394-395) Notasi Keterangan Actor Sesuatu yang berinteraksi dengan sistem untuk bertukar informasi. System Kotak disamping menunjukkan keadaan sistem yang berjalan. Lifelines Garis yang merepresentasi objek dalam jangka waktu tertentu Activation bars Menggambarkan periode waktu ketika melakukan interaksi. Input messages Kegiatan input diindikasikan oleh garis dari aktor menuju sistem 47 Tabel 2. 6 Notasi Sequence Diagram(b) (Whitten & Bentley, 2007, p394-395) Notasi Keterangan Output messages Kegiatan output diindikasikan oleh garis putus – putus dari sistem menuju aktor Receiver actor Aktor lain atau sistem eksternal yang menerima pesan dari sistem. Frame Box yang berfungi untuk untuk membagi aktifitas ke dalam beberapa bagian. 2.11.5 Class Diagram Class diagram merupakan penggambaran objek struktur statik dari sebuah sistem yang memperlihatkan isi dari sebuah sistem yang berisikan hubungan antar class object (Whitten & Bentley, 2007, p400). 48 Gambar 2. 16 Contoh Class Diagram Whitten & Bentley (2007, p406) 49 Notasi yang digunakan dalam class diagram: Tabel 2. 7 Notasi Class Diagram(a) (Whitten & Bentley, 2007, p400-405) Notasi Keterangan Class Deskripsi dari objek yang terbagi atas atribut, operasi, dan relasi yang sama. Class terdiri dari 3 bagian yakni nama class pada bagian atas, atribut pada bagian tengah, dan operasi pada bagian bawah. Association Hubungan asosiasi antar objek class yang saling berelasi. Generalization Merupakan relasi yang terdiri atas supertype (parent) class dan subtype (child) class dimana suatu class dapat lebih spesifik dari class lainnya. 50 Tabel 2. 8 Notasi Class Diagram(b) (Whitten & Bentley, 2007, p400-405) Notasi Keterangan Aggregration Hubungan unik yang menspesifikasikan relasi antara kumpulan (whole) dan sebuah bagian (part). Composition Dilambangkan dengan diamond yang berwarna. Multiplicity Menggambarkan jumlah objek yang berpartisipasi dalam relasi antar class. 2.12 Waterfall Model Menurut Pressman (2010, p39), model waterfall, atau terkadang disebut sebagai classic life cycle adalah pendekatan sistematis dan sekuensial untuk pengembangan perangkat lunak yang diawali dengan spesifikasi pelanggan (Planning), (Communication) pemodelan penyebaran (Deployment). dan (Modeling), berlangsung konstruksi melalui perencanaan (Construction), dan 51 Gambar 2. 17 Urutan Proses Model Waterfall Pressman (2010, p39) Berikut merupakan penjelasan mengenai lima tahapan model waterfall menurut Pressman (2010, p15): 1. Communication Sebelum pekerjaan teknis dalam pembuatan sistem dimulai, ada baiknya pengembang terlebih dahulu berkomunikasi dan berkolaborasi dengan pelanggan dan stakeholder lainnya. Tujuannya adalah untuk memahami sistem seperti apa yang diinginkan oleh stakeholder serta untuk mengumpulkan informasi terkait seperti ketentuan – ketentuan yang nantinya akan membantu mendefinisikan fitur dan fungsi dalam sistem. 2. Planning Pada tahap ini dilakukan perencanaan kerja para software engineering dengan cara mendefinisikan serta menggambarkan tugas – tugas teknis yang akan dilakukan, resiko yang mungkin dihadapi, sumber daya yang akan dibutuhkan, produk pekerjaan seperti apa yang harus diproduksi, serta pengaturan jadwal kerja. 3. Modeling Pada tahap ini dilakukan pembuatan “sketsa” sistem untuk mempermudah memahami gambaran – gambaran besar dari sistem yang akan dibuat. Pada tahap pemodelan ini software engineering menciptakan model desain perangkat lunak atau sistem dengan tujuan agar dapat mengevaluasi lebih lanjut mengenai arsitektur sistem serta untuk membantu menyelesaikan jika ditemukan permasalahan. 4. Construction Pada tahap ini dilakukan penggabungan antara coding dan testing yang diperlukan dalam pembuatan suatu perangkat lunak atau sistem. Hal ini 52 bertujuan untuk mengungkap dan mengetahui kesalahan apa saja yang terdapat dalamnya. 5. Deployment Pada tahap ini perangkat lunak atau sistem yang telah selesai dibuat akan dipasarkan ke pelanggan. Selain itu dilakukan juga proses evaluasi produk dengan cara mengumpulkan kritik, saran, dan umpan balik dari pelanggan yang telah mencoba perangkat lunak atau sistem yang telah dibuat. 2.13 State Transition Diagram (STD) State Transition Diagram (STD) merupakan alat (tools) yang digunakan untuk menggambarkan urutan dan variasi layar yang terjadi selama pengguna melakukan sesi (Whitten & Bentley, 2007, p635). Gambar 2. 18 Contoh State Transition Diagram Whitten & Bentley (2007, p636) Dari gambar diatas, Whitten & Bentley (2007, p636) menyatakan bahwa bangun persegi menggambarkan apa maupun siapa saja yang terlibat 53 selama sesi berlangsung. Arah panah menunjukkan uruutan layar yang terjadi. Panah yang berlabel memiliki arah tersendiri satu sama lain karena setiap tindakan yang dilakukan berbeda – beda dan mengarah pada suatu layar tententu. 2.14 Flowchart Menurut Roberston (2006, p264), flowchart merupakan metode alternatif dalam merepresentasikan algoritma. Flowchart digambarkan melalui simbol geometris yang dihubungkan dengan garis. 54 Gambar 2. 19 Contoh Flowchart Robertson (2006, p294) 55 Notasi yang digunakan dalam flowchart: Tabel 2. 9 Notasi Flowchart(a) (Robertson, 2006, p264) Notasi Keterangan Terminal symbol Mengindikasikan awal atau akhir dari sebuah logika. Setiap flowchart harus dimulai dan diakhiri oleh terminal symbol. Input / Output symbol Merepresentasikan proses input atau output pada sebuah algoritma, seperti membaca input atau menulis output. Process symbol Merepresentasikan proses tunggal dalam sebuah algoritma, seperti menentukan nilai atau melakukan perhitungan. Flow control bersifat urutan (sequential). 56 Tabel 2. 10 Notasi Flowchart(b) (Robertson, 2006, p264) Notasi Keterangan Predefined process symbol Merupakan modul dalam sebuah algoritma, yaitu proses yang telah ditetapkan yang memiliki flowchart tersendiri. Decision symbol Merupakan proses keputusan dalam logika yang melibatkan perbandingan dari dua nilai. Jalur algoritma akan dilanjutkan tergantung pada apakah decision symbol benar atau salah. Flowlines Flowlines menghubungkan berbagai simbol dalam flowchart, dan mempunyai anak panah hanya ketika flow control tidak dari atas ke bawah atau kiri ke kanan. 57 2.14.1 Struktur Kontrol Dasar Flowchart Terdapat tiga struktur kontrol dasar dalam pembuatan flowchart (Roberston, 2006, p265-268). Antara lain: 1. Sequence — Pengeksekusian langsung dari satu langkah processing ke langkah lainnya. Sebuah flowchart mewakili struktur kontrol ini sebagai rangkaian simbol proses bersusun kebawah dengan satu awalan dan satu akhiran. Gambar 2. 20 Contoh Struktur Kontrol Sequence Robertson (2006, p265) 2. Selection — Representasi penyajian kondisi dan pilihan antara dua tindakan tergantung pada apakah kondisinya benar atau salah. Gambar 2. 21 Contoh Struktur Kontrol Selection Robertson (2006, p266) 58 3. Repetition — Representasi dari set instruksi yang dapat dilakukan berulang – ulang, selama kondisi terpenuhi. Ide dasarnya yaitu blok pernyataan dijalankan lagi dan lagi, sampai kondisi terakhir terjadi. Gambar 2. 22 Contoh Struktur Kontrol Repetition Robertson (2006, p267) 2.15 Interaksi Manusia dan Komputer (IMK) Menurut Shneiderman & Plaisant (2010, p31), pengertian Interaksi Manusia dan Komputer adalah suatu ilmu yang mempelajari tentang bagaimana manusia melakukan interaksi dengan komputer. Beberapa hal yang berhubungan dengan user interface seperti perancangan, evaluasi, dan implementasi dari sistem interaksi perlu diperhatikan agar dapat menciptakan sistem komputer yang interaktif untuk digunakan oleh manusia. 2.15.1 Lima Faktor Manusia Terukur Dalam perancangan desain antarmuka, terdapat beberapa faktor yang perlu diperhatikan dan dipahami oleh perancang sebelum melakukan proses pembuatan sistem atau aplikasi lebih jauh. Shneiderman & Phaisant (2010, p32) menyatakan bahwa terdapat lima faktor manusia terukur dalam desain antarmuka penguna, antara lain: 1. Waktu belajar (Time to learn) Berapa lama waktu yang dibutuhkan pengguna dalam hal mempelajari sekumpulan perintah maupun tindakan pada suatu tugas? Dalam hal ini, 59 tingkat efisiensi atau kemudahan dalam pengoperasian sistem sangatlah penting. Hal ini bertujuan agak pengguna tidak membutuhkan waktu lama untuk memahami sistem. 2. Kecepatan kinerja (Speed of performance) Berapa lama waktu yang dibutuhkan untuk melakukan tugas? Dengan kata lain seberapa efektif kinerja sistem ketika digunakan. 3. Tingkat kesalahan (Rate of errors by users) Berapa banyak dan jenis kesalahan apa sajakah yang dilakukan oleh pengguna dalam melakukan atau menyelesaikan suatu tugas? Tingkat kesalahan aplikasi sistem harus dapat diminimalisir sekecil mungkin untuk memudahkan pengguna. 4. Daya ingat (Retention over time) Seberapa baik pengguna mempertahankan pengetahuan mereka setelah satu jam, satu hari, maupun satu minggu? Tingkat daya ingat pengguna dipengaruhi oleh waktu belajar dan frekuensi penggunaan aplikasi sistem. Semakin sering pengguna menggunakan sistem maka semakin mudah pengguna mengingat sistem tersebut. 5. Kepuasan subjektif (Subjective satisfaction) Seberapa suka pengguna dalam menggunakan variasi aspek dari suatu sistem (interface)? Tingkat kepuasan pengguna dapat dievaluasi dan dipastikan dengan cara interview, kuesioner, survey, dan lainnya. 2.15.2 Delapan Aturan Emas (Eight Golden Rules) Menurut Shneiderman & Plaisant (2010, p88-89), terdapat delapan prinsip yang disebut Delapan Aturan Emas (Eight Golden Rules). Prinsip – prinsip tersebut perlu diterapkan dalam perancangan antar muka yang baik agar menghasilkan sistem interaktif yang baik, antara lain: 1. Berusaha untuk konsisten (Strive for consistency) Urutan konsisten tindakan diterapkan melalui terminologi identik yang digunakan pada prompt, menu dan help screens; konsistensi pemilihan warna, tata letak, kapitalisasi, font, dan sebagainya harus diterapkan secara konsisten di keseluruhan aplikasi sistem. 2. Menyediakan usability universal (Cater to universal usability) 60 Kenali kebutuhan pengguna yang beragam dalam memfasilitasi konten. Perbedaan pemula-ahli (novice-expert), rentang usia, disabilitas, dan keanekaragaman teknologi masing – masing memperkaya spektrum pesyaratan dalam proses perancangan sistem. Menambahkan fitur untuk pemula, seperti penjelasan, dan fitur untuk ahli, seperti shortcut, dapat memperkaya desain antarmuka dan meningkatkan kualitas aplikasi sistem. 3. Memberikan umpan balik yang informatif (Offer informative feedback) Dalam setiap aksi yang dilakukan oleh pengguna, harus tersedia sebuah umpan balik. Namun, umpan balik yang dibuat harus memenuhi aturan tertentu seperti bersifat informatif dan efektif agar dapat menunjukkan hasil yang eksplisit. 4. Merancang dialog untuk menghasilkan keadaan akhir (Design dialogs to yield closure) Urutan tindakan harus membentuk suatu urutan yang diatur ke dalam grup – grup dimana terdapat bagian awal, tengah, dan akhir. Umpan balik yang informatif akan membantu perancang untuk mempersiapkan tindakan selanjutnya dengan lebih baik lagi. 5. Mencegah kesalahan (Prevent errors) Sebisa mungkin dalam perancangan sistem harus dapat menghindarkan pengguna dari berbagai kesalahan sebelum kesalahan tersebut terjadi. Jika pengguna melakukan kesalahan, system interface harus dapat mendeteksi kesalahan dan menawarkan instruksi sederhana, konstruktif, dan spesifik untuk dapat melakukan recovery. Sebagai contoh, pengguna tidak perlu mengetik ulang keseluruhan nama sampai alamat ketika mengisi form jika mereka memasukkan kode pos yang salah, melainkan hanya perlu memperbaiki bagian yang salah atau tidak sesuai saja. 6. Memungkinkan pembalikan aksi (undo) yang mudah (Permit easy reversal of actions) Tindakan yang dilakukan oleh sistem haruslah bersifat reversible. Hal ini dapat mengurangi kecemasan dari pengguna, karena pengguna mengetahui bahwa kesalahan dapat diperbaiki. Dengan ini pengguna akan terdorong untuk melakukan eksplorasi lebih lanjut terhadap sistem dan tidak merasa bingung jika melakukan kesalahan. 61 7. Mendukung pusat kendali internal (Support internal locus of control) Expert user menginginkan bahwa mereka bertanggung jawab atas interface dan bagaimana interface merespon tindakan mereka. Sistem harus dapat memberikan respon sesuai dari setiap aksi yang dilakukan pengguna karena manusia yang memegang kontrol dari suatu sistem. 8. Mengurangi beban ingatan jangka pendek (Reduce short-term memory load) Kapasitas ingatan manusia yang terbatas mensyaratkan bahwa perancang harus menghindari interface di mana pengguna harus mengingat informasi dari satu layar ke layar lainnya. Rancangan tampilan sistem harus dirancang sesederhana mungkin agar mudah dimengerti oleh pengguna dengan cara mengurangi pergerakan window, waktu pelatihan yang cukup diberikan kepada pengguna untuk kode – kode, hapalan, dan urutan aksi tindakan. 2.15.3 Kategori Pengguna Mempelajari mengenai kategori pengguna merupakan ide yang sederhana namun terkadang bisa bersifat menjebak. Seluruh desain sistem haruslah dimulai dengan menentukan tipe – tipe pengguna, termasuk umur, jenis kelamin, kultur, edukasi, latar belakang, personalitas, dan lainnya. Maka dari itu, sebelum membuat suatu perangkat lunak sebaiknya dipertimbangkan dahulu kategori pengguna yang akan menggunakan aplikasi tersebut. Shneiderman & Phaisant (2010, p81-82) membagi kategori pengguna menjadi tiga, yaitu: 1. Novice atau first-time users Pengguna yang benar – benar pemula diasumsikan hanya mengetahui bagian kecil saja task dari sebuah konsep sistem. Maka dari itu, aplikasi yang dibuat untuk pengguna seperti ini sebaiknya diatur agar dapat digunakan semudah mungkin. Jumlah tindakan juga harus kecil sehingga pengguna pemula atau pertama kali dapat melakukan tugas – tugas sederhana dengan lancar dna dengan demikian akan mengurangi kecemasan, membangun percaya diri, dan mendapatkan penguatan positif. 62 Selain itu disarankan juga membuat umpan balik, petunjuk penggunaan, video demonstrasi, atau tutorial. 2. Knowledgeable intermitten users Kategori ini merupakan kategori pengguna yang sudah mengerti konsep serta pengetahuan mengenai komputer, namun belum mengerti atau masih merasa kesulitan dalam menggunakan suatu aplikasi. Konsistensi tindakan, panduan yang jelas akan membantu pengguna kategori ini untuk dapat mempelajari aplikasi secara jelas namun tidak perlu terlalu mendalam atau detail seperti kategori novice. 3. Expert frequent users Untuk pengguna kategori expert, biasanya sudah familiar dengan berbagai task dan konsep yang ada pada aplikasi dan ingin agar pekerjaannya cepat selesai. Maka dari itu diusahakan membuat umpan balik sesingkat mungkin agar dapat mempercepat tindakan yang dilakukan, seperti melengkapi aplikasi dengan berbagai shortcut. 2.16 Internet Menurut Connolly (2010, p1024-1025), internet adalah koleksi dari jaringan komputer yang saling berhubungan satu sama lain. Internet terdiri dari banyak jaringan yang terpisah namun saling berhubungan antar komersial, organisasi pendidikan dan pemerintahan, dan Internet Service Providers (ISPs). Layanan yang ditawarkan oleh internet termasuk electronic mail (e-mail), layanan chat dan konferensi, serta kemampuan untuk mengakses berbagai macam informasi, mengirim dan menerima file. 2.17 HTTP (Hypertext Transfer Protocol) HTTP adalah protokol agar client dan server dapat berkomunikasi dengan cara request-response. HTTP menentukan bagaimana format pesan dan bagaimana cara pengirimannya, serta bagaimana web server dan browser merespons berbagai tindakan (Hidayatullah & Kawistara, 2014, p5). 63 2.18 TCP/IP Transport Control Protocol/Internet Protocol (TCP/IP) adalah sekelompok protokol sistem yang mendukung jaringan komunikasi data komputer di internet. Komputer – komputer yang terhubung melalui internet dapat melakukan komunikasi dengan protokol ini, karena menggunakan bahasa yang sama, yakni protokol TCP/IP. Jadi, ketika sebuah komputer menggunakan protokol TCP/IP dan terhubung langsung ke internet, maka komputer tersebut dapat berhubungan dengan komputer manapun yang juga terhubung ke internet (Casad, 2012, p7). 2.19 Pengenalan HTML HTML merupakan bahasa standar untuk membuat suatu dokumen HTML (halaman web) yang terdiri dari kode – kode tertentu. Kode – kode tersebut akan memerintahkan web browser dalam menampilkan halaman web yang terdiri dari berbagai macam format file seperti teks, grafik, animasi, link maupun audio-video. 2.19.1 Pengertian HTML HTML adalah singkatan dari HyperText Markup Language. Dokumen HTML merupakan dasar dari semua konten yang terdapat pada World Wide Web (WWW), terdiri dari dua bagian penting: konten informasi dan satu set instruksi yang akan menginstruksikan komputer bagaimana untuk menampilkan konten tersebut. Instruksi “markup” terdiri dari bahasa HTML. Instruksi ini tidak termasuk dalam bahasa pemograman dalam arti tradisional, melainkan suatu set instruksi tentang bagaimana caranya menampilkan konten. Aplikasi komputer yang menerjemahkan penjelasan ini disebut dengan Web Browser. Idealnya, konten online harus terlihat sama terlepas dari sistem operasi yang browser gunakan (Brooks, 2011, p1). Menurut Brooks (2011, p1-2), dokumen HTML dasar membutuhkan minimal empat set elemen dasar: <html> ... </html> <head> ... </head> <title> ... </title> 64 <body> ... </body> Elemen – elemen ini menentukan bagian penting dari sebuah dokumen HTML yang anata lain dokumen itu sendiri, bagian heading, bagian title, dan body. Tag HTML selalu menggunakan kurung sudut: <...>. Tag akhir dimulai dengan garis miring (/). Selain itu, beberapa elemen HTML hanya memiliki satu tag. Sebagian besar tag seharusnya dibuat berpasangan, namun terdapat beberapa pengecualian dalam HTML. Dalam rangka mendukung scripting language seperti JavaScript, elemen lain harus ditambahkan ke dalam empat elemen dasar (Brooks, 2011, p2). <script> ... </script> Menurut Brooks (2011, p2), elemen skrip selalu berisikan kode JavaScript. Elemen – elemen ini diatur sedemikian rupa di dalam dokumen HTML dengan format sebagai berikut: <html> <head> <title> ... </title> ... <!— Optional script elements as needed. --> <script> ... </script> </head> <body> ... </body> </html> 2.20 PHP: Hypertext Preprocessor (PHP) PHP adalah scripting language yang kuat dimana ia dapat berjalan dengan sendirinya pada command line dari komputer manapun dengan PHP yang telah diinstall. Namun, PHP saja tidak cukup untuk membangun sebuah situs dinamik. Untuk menggunakan PHP pada sebuah situs, dibutuhkan server yang dapat memproses skrip PHP. Apache adalah situs server gratis bilamana telah diinstall pada komputer, memungkinkan pengembang untuk 65 menguji / mencoba skrip PHP secara lokal; hal ini merupakan sesuatu yang sangat berharga bagi lingkungan pengembangan (Lengstorf & Hansen, 2014, p3). Selain itu, situs yang dikembangkan menggunakan PHP sering mengandalkan informasi yang tersimpan di dalam basis data, sehingga mudah untuk di modifikasi. Hal inilah yang menjadi perbedaan antara situs PHP dan situs HTML. Disini, sistem manajemen relasional basis data seperti MySQL turut ikut serta. MySQL merupakan basis data yang tepat karena bersifat open source dan PHP menyediakan dukungan untuk MySQL (Lengstof, Hansen, 2014, p3). PHP merupakan sebuah bahasa skrip yang bersifat general-purpose yang awalnya ditemukan oleh Rasmus Lerdof pada tahun 1995. Lerdof membuat PHP untuk memudahkan kebutuhan saat memproses data untuk World Wide Web (Lengstof & Hansen, 2014, p3). 2.21 Pengenalan Eclipse IDE Menurut Burnette (2005, p1), Eclipse IDE dapat digunakan untuk mengembangkan perangkat lunak dalam bahasa pemograman apapun, tidak hanya Java. Eclipse dimulai sebagai pengganti untuk Visual Age Java dari IBM, namun berubah menjadi open source pada November 2001. Kini Eclipse dikelola oleh organisasi non-profit bernama Eclipse Foundation. Sejak tahun 2001, Eclipse telah diunduh lebih dari 50 juta kali dan sekarang digunakan oleh ribuan pengembang di seluruh dunia. Eclipse juga memiliki peranan yang besar dalam lingkup universitas, dimana Eclipse digunakan dalam kelas programming dan object-oriented design. 2.21.1 System Requirements Menurut Burnette (2005, p2), Eclipse beroperasi pada sistem operasi populer saat kini, termasuk Windows, Linux, dan Mac OS. Eclipse membutuhkan Java agar dapat beroperasi, sehingga jika belum memiliki Java pada komputer, maka dianjurkan untuk menginstall Java terlebih dahulu. Java untuk Windows dan Linux dapat diunduh dari situs http://java.sun.com; untuk 66 Mac OS, ia telah memiliki Java yang sudah terinstall secara default. Berikut persyaratan sistem minimun yang direkomendasikan untuk menjalankan Eclipse (Gambar 2.23). Gambar 2. 23 System Requirements untuk Eclipse Burnette (2005, p3) 2.22 Pengenalan MySQL MySQL merupakan perangkat lunak basis data open source yang paling populer di dunia, dimana saat ini digunakan oleh lebih dari 100 juta pengguna di seluruh dunia. Dengan kehandalan, kecepatan dan kemudahan penggunaannya, MySQL menjadi pilihan utama bagi banyak developer perangkat lunak dan aplikasi baik pada platform web maupun desktop. 2.22.1 Pengertian MySQL Basis data (database) merupakan kumpulan catatan atau data yang disimpan secara terstruktur dalam sistem komputer dan diorganisasikan sedemikian rupa sehingga dapat dicari secara cepat dan informasi bisa segera diterima. SQL pada MySQL merupakan kepanjangan dari Structured Query Language. Bahasa pemograman yang digunakan MySQL berdasarkan pada bahasa Inggris yang juga digunakan pada basis data lain seperti Oracle dan Microsoft SQL Server. Hal ini dirancang untuk memungkinkan permintaan sederhana dari basis data melalui perintah seperti: SELECT title FROM publications WHERE author = ‘Charles Dickens’; Sebuah basis data MySQL berisi satu atau lebih tabel, dimana masing – masing tabel berisi catatan atau baris dari data itu sendiri (Nixon, 2014, p171). 67 2.22.2 Menghubungkan MySQL Menggunakan PHP Menurut Nixon (2014, p241), alasan menggunakan PHP sebagai interface untuk menghubungkan MySQL adalah agar dapat memformat hasil query SQL ke dalam bentuk tampilan halaman situs. Selama pengguna dapat melakukan login ke dalam MySQL menggunakan username dan password yang dimiliki, maka pengguna dapat melakukannya melalui PHP. Namun, daripada menggunakan perintah MySQL untuk melakukan instruksi dan melihat hasil output, pengguna akan membuat query string yang akan dikirim menuju MySQL. Ketika MySQL memberikan respon atas query string, query string akan menjadi struktur data yang dikenal oleh PHP, tidak lagi sebagai format keluaran yang terlihat pada command line. Tahapan proses dalam menggunakan MySQL dengan PHP menurut Nixon (2014, 242) antara lain: 1. Connect ke SQL 2. Pilih basis data yang akan digunakan 3. Membangun query string 4. Menjalankan query 5. Ambil hasil dan lakukan output ke dalam halaman situs 6. Ulangi langkah 3 sampai 5 hingga semua data yang diinginkan telah diambil 7. Disconnect dari MySQL Pada proses pengerjaan diatas, hal terpenting yang harus dilakukan adalah memastikan bahwa aktifitas login dilakukan secara aman sehingga dapat meminimalisir kemungkinan pihak lain yang tidak berwenang untuk mengakses basis data pengguna. 2.23 Pengenalan SQLite Dalam istilah sederhana, SQLite adalah software publik-domain yang menyediakan sistem relasional basis data (relational database management system / RDBMS). Sistem relasional basis data digunakan pengguna untuk menyimpan record data. Selain penyimpanan data dan manajemen, database engine dapat memproses perintah query yang kompleks dimana ia menggabungkan data dari beberapa tabel untuk menghasilkan laporan dan 68 ringkasan data. Beberapa produk RDBMS populer lainnya meliputi Oracle Database, IBM DB2, Microsoft SQL on commersial side, dan PostgreSQL yang bersifat open source. (Keribich, 2010, p1). 2.23.1 Fitur – Fitur SQLite Menurut Keribich (2010, p1-2), beberapa fitur dari SQLite antara lain: i. Serverless — SQLite tidak memerlukan sistem atau server yang terpisah untuk beroperasi. Library SQLite mengakses dokumen penyimpanan secara langsung. ii. Zero Configuration — Tidak ada server berarti tidak ada pengaturan. Membuat basis data SQLite. iii. Cross-Platform — Keseluruhan basis data berada dalam sebuah dokumen cross-flatform tunggal dan tidak memerlukan administrasi. iv. Self-Contained — Sebuah library tunggal berisi sistem basis data secara keseluruhan, yang diintegrasikan secara langsung ke dalam aplikasi host. v. Small Runtime Footprint — Pembangunan kode default kurang dari satu megabyte dan hanya memerlukan beberapa megabyte memori. Dengan menggunakan beberapa penyesuaian, ukuran library maupun penggunaan memori yang dapat dikurangi secara signifikan. vi. Transactional — Transaksi SQLite sepenuhnya bersifat ACIDcompliant, dimana memungkinkan akses yang aman dari beberapa proses atau thread. vii. Full-Featured — SQLite mendukung sebagian besar fitur bahasa query yang ditemukan di SQL92 (SQL2). viii. Highly Reliable — Tim pengembangan SQLite melakukan pengujian kode dan melakukan verifikasi dengan serius. 2.24 Application Programming Interface (API) Menurut Tulach (2008, p1-14), API tidak hanya terdiri dari kumpulan class maupun fungsi sederhana. API bertujuan untuk mengatasi “clueless” 69 dalam membangun software berukuran besar, dimulai dari sistem sederhana hingga yang kompleks. Segala permasalahan yang ditemukan ketika melakukan update pada database atau skema XML, proses update dapat dipermudah menggunakan bantuan API. API merupakan sekumpulan perintah fungsi, class dan protokol yang dapat menghubungkan suatu software dengan software lainnya. Pada saat melakukan coding, programmer dapat menghemat waktu dalam membuat dan menyusun infrastruktur. Hal ini dikarenakan API memiliki tujuan untuk menghilangkan “clueless” pada sistem dengan cara membuat blok besar dari software di seluruh dunia serta menggunakan kembali berbagai fungsi dan class yang API miliki. 2.25 JSON Menurut situs resminya (json.org), JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat (generate) oleh komputer. Format ini dibuat berdasarkan bagian dari Bahasa pemograman JavaScript, Standar EMA-262 Edisi ke-3 – Desember 1999. JSON merupakan format teks yang tidak bergantung pada bahasa pemograman apapun karena menggunakan gaya bahasa yang umum digunakan oleh programmer bahasa C termasuk C, C++, C#, Java, JavaScript, perl, Python, dan lain – lain. Oleh karena sifat – sifat tersebut, JSON merupakan format yang ideal sebagai bahasa pertukaran-data. 2.25.1 Struktur JSON JSON terdiri dari 2 struktur: 1. Kumpulan pasangan nama / nilai. Pada beberapa bahasa, hal ini dinyatakan sebagai objek (object), rekaman (record), struktur (struct), kamus (dictionary), tabel hash (hash table), daftar berkunci (keyed list), atau associative array. 70 2. Daftar nilai terurutkan (an ordered list of values). Pada kebanyakan bahasa, hal ini dinyatakan sebagai larik (array), vektor (vector), daftar (list), atau urutan (sequence). Struktur-struktur data ini disebut sebagai struktur data universal. Pada dasarnya, semua bahasa pemprograman moderen mendukung struktur data ini dalam bentuk yang sama maupun berlainan. Hal ini pantas disebut demikian karena format data mudah dipertukarkan dengan bahasa-bahasa pemprograman yang juga berdasarkan pada struktur data ini (json.org). 2.26 XML XML (Extensible Markup Language) merupakan sebuah metalanguage (bahasa untuk mendeskripsikan bahasa lain) yang memungkinkan pengguna untuk membuat tag sendiri yang disesuaikan untuk menyediakan fungsuinalitas yang tidak tersedia dengan HTML. XML adalah versi terbatas dari SGML (Standard Generalized Markup Language), dirancang khusus untuk web document. Sebagai contoh, XML mendukung link yang mengarah ke beberapa dokumen, sedangkan link dari HTML hanya dapat mereferensi satu tujuan dokumen. (Connolly & Begg, 2010, p1113). 2.26.1 Keuntungan XML Menurut Connolly & Begg (2010, p1114-1116), XML memiliki beberapa keuntungan, antara lain: 1. Simplicity — XML di desain menggunakan bahasa yang lebih mudah dipahami dan lebih masuk akal. 2. Open standard and platform-/vendor-independent — XML merupakan platform-independent dan vendor-independent, bentuk terbatas dari SGML, sebuah standar ISO. XML juga berdasarkan pada ISO 10646, set karakter unicode, dan mendukung teks dari seluruh jenis alfabet di seluruh dunia. 71 3. Extensibility — Memungkinkan pengguna untuk mendefisinikan kebutuhan sesuai dengan dibutuhkan oleh aplikasi. 4. Reuse — Memungkinkan library XML untuk digunakan dalam aplikasi lain. 5. Separation of content and presentation — XML memisahkan isi dokumen dari cara penyampaiannya. 6. Improved load balancing — Data dapat dikirim ke browser pada desktop untuk melakukan perhitungan lokal, komputasi offloading dari server untuk memperoleh load balancing yang lebih baik. 7. Support for the integration of data from multiple sources — Kemampuan untuk mempermudah melakukan penggabungan dalam pengintegrasian data dari banyak sumber. 8. Ability to describe data from a wide variety of applications — XML dapat digunakan untuk mendeskripsikan data yang terkandung dalam berbagai jenis aplikasi. 9. More advanced search engines — Dengan menggunakan XML, search engine akan lebih mudah untuk membagi tag yang berisi deskripsi. 10. New opportunities — Teknologi XML lebih banyak menawarkan kesempatan di era teknologi saat ini. 2.27 Web Server XAMPP Menurut Hidayatullah & Kawistara (2014, p125), web server digunakan untuk menguji suatu aplikasi web dan merupakan tempat dimana aplikasi web di simpan kemudian di akses melalui internet. Jika ingin melakukan perubahan kecil maupun besar, data akan di upload ke web server baru kemudian dilakukan pengecekan apakah perubahan yang di buat sudah sesuai atau belum. Selain itu alasan dibutuhkannya web server adalah karena untuk server side script seperti PHP, pengecekan baru akan tampil jika menggunakan web server. Itulah bedanya client side script seperti HTML, 72 CSS, dan javascript dimana hanya membutuhkan browser untuk mengeksekusi script tersebut (Hidayatullah & Kawistara, 2014, p125). Salah satu web server yang terkenal adalah apache. Apache merupakan salah satu projek dari sebuah perusahaan yang memiliki proyek perangkat lunak gratis untuk digunakan banyak orang. Perusahaan tersebut bernama The Apache Sofware Foundation (Hidayatullah & Kawistara, 2014, p126). 2.28 phpMyAdmin Menurut situs resminya (http://www.phpmyadmin.net/home_page/index.php), phpMyAdmin adalah perangkat lunak gratis yang ditulis dalam PHP, bertujuan untuk menangangi proses administrasi MySQL melalui situs (website). phpMyAdmin mendukung berbagai operasi MySQL, MariaDB, dan Drizzle. Operasi yang sering digunakan seperti mengelola basis data, tabel, kolom, relasi, indeks, pengguna, perizinan, dan lainnya dapat dikerjakan via user interface, sementara pengguna masih dapat mengeksekusi secara langsung beragam statement dari SQL. 2.28.1 Fitur phpMyAdmin Situs resmi phpMyAdmin (http://www.phpmyadmin.net/home_page/index.php) menyatakan bahwa phpMyAdmin memiliki beragam fitur, antara lain: 1. Web interface yang intuitif 2. Mendukung sebagian besar fitur MySQL: a. Browse dan drop basis data, tabel, views, field, dan indeks. b. Maintenance server, basis data dan tabel, dengan proposal pada konfigurasi server. c. Mengeksekusi, edit, dan bookmark setiap pernyataan SQL serta batch-queries. 73 d. Mengelola pengguna MySQL dan hak – hak istimewa yang dimiliki pengguna. e. Mengelola penyimpanan prosedur. 3. Dapat mengimport data dari CSV dan SQL. 4. Data dapat diekspor ke berbagai format seperti CSV, SQL, XML, PDF, ISO/IEC 26300 – OpenDocument Text and Spreadsheet, Word, L A T E X, dan lainnya. 5. Dapat mengelola beberapa server. 6. Dapat membuat grafis PDF untuk layout basis data. 7. Dapat membuat query yang kompleks menggunakan Query-by-example (QBE). 8. Dapat mencari basis data secara global beserta subsetnya. 9. Transformasi stored data ke dalam format apapun menggunakan satu set fungsi yang telah ditetapkan, seperti menampilkan gambar BLOBdata atau link download. 2.29 Yii Framework Menurut situs resminya guide/1.1/id/quickstart.what-is-yii), (http://www.yiiframework.com/doc/ Yii merupakan kerangka kerja (framework) PHP berbasis-komponen, berkinerja tinggi untuk pengembangan aplikasi web berskala-besar. Yii menyediakan reusability maksimum dalam pemrograman web dan mampu meningkatkan kecepatan pengembangan secara signifikan. Nama Yii (dieja sebagai /i:/) singkatan dari "Yes It Is!". Berikut merupakan respon yang paling tepat dan akurat untuk yang baru dengan Yii: Apakah Yii cepat? Apakah Yii aman? Apakah Yii profesional? Apakah Yii cocok untuk projek saya berikutnya? Yes, it is! Yii adalah framework pemrograman umum web yang dapat digunakan untuk mengembangkan semua jenis aplikasi web. Hal ini dikarenakan Yii sangat ringan dan dilengkapi dengan mekanisme caching yang canggih, Yii sangat cocok untuk pengembangan aplikasi dengan lalu lintas tinggi, seperti 74 portal, forum, sistem manajemen konten (CMS), sistem e-commerce, dan lain – lain. 2.29.1 Syarat Penggunaan Yii Situs resmi Yii (http://www.yiiframework.com/doc/guide/1.1/id/quickstart.what-is-yii) menyatakan bahwa untuk menjalankan aplikasi web berbasis Yii, diperlukan web server yang mendukung PHP 5.1.0. Bagi para developer yang ingin menggunakan Yii, mengerti pemrograman berorientasi-objek (OOP) akan sangat membantu, karena Yii merupakan framework OOP murni. 2.29.2 Perbandingan Yii dengan Framework Lain Seperti kebanyakan PHP framework, Yii adalah MVC framework. Yii melampaui framework PHP lain dalam hal efisiensi, kekayaan fitur, dan kejelasan dokumentasi. Yii didesain dengan hati – hati dari awal agar sesuai untuk pengembangan aplikasi web secara serius. Yii bukan berasal dari produk pada beberapa proyek maupun konglomerasi pekerjaan pihak ketiga. Yii merupakan hasil dari pengalaman kaya para pembuat pada pengembangan aplikasi web dan investigasi framework pemrograman web dan aplikasi yang paling popular (http://www.yiiframework.com/doc/guide/1.1/id/quickstart.what-is-yii). 2.30 MVC (Model View Controller) MVC (Model View Controller) merupakan pola desain perangkat lunak yang dibuat di sekitar interkoneksi dari tiga jenis komponen utama, dalam bahasa pemograman seperti PHP, sering diterapkan fokus yang kuat pada paradigma object oriented programming (OOP). Tiga komponen tersebut yakni model, view, dan controller. Model merupakan tempat dimana semua logika bisnis aplikasi disimpan. Logika bisnis dapat berupa sesuatu yang spesifik mengenai bagaimana aplikasi menyimpan data, atau 75 menggunakan jasa third party dalam rangka memenuhi kebutuhan bisnis. Ketika aplikasi harus mengakses informasi dalam basis data, kode untuk melakukan tindakan akan disimpan dalam model. Jika diperlukan, misalnya ketika ingin mengambil data saham atau tweet mengenai produk baru, kode juga akan disimpan dalam model. View adalah dimana semua elemen user interface dari aplikasi disimpan. Hal ini mencakup markup HTML, CSS style sheet, dan file JavaScript. Apapun yang pengguna lihat atau berinteraksi dapat disimpan dalam sebuah view. Terkadang, apa yang pengguna lihat sebenarnya merupakan kombinasi dari beberapa view yang berbeda dalam request yang sama (Pitt, 2012, p1). Pitt (2012,p1) menyatakan bahwa Controller adalah komponen yang menghubungkan model dan view bersama – sama. Controller mengisolasi model logika bisnis dari elemen user interface view, kemudian menangani bagaimana aplikasi akan merespon interaksi pengguna dalam view. Controller merupakan titik masuk kedalam ketiga komponen ini, karena request pertama kali akan melalui controller terlebih dahulu yang kemudian akan meminta model dan view untuk memenuhi permintaan untuk aplikasi. Gambar 2. 24 MVC dalam Nutshell Pitt (2012, p2) 2.30.1 Manfaat MVC Menurut Pitt (2012, p2), ketika membangun sebuah web aplikasi, terdapat banyak aspek yang dapat menghambat kinerja dari proyek yang sedang berlangsung. Beberapa contoh diantaranya seperti desain seperti apa yang dapat menstimulasi interest terhadap produk, logika bisnis seperti apa 76 yang dibutuhkan untuk melakukan hal – hal praktis seperti proses penjualan dan pembelian, serta proses mengenai improving, updating, dan bug-fixing pada aplikasi. Pada suatu aplikasi terstruktur, area – area tersebut cenderung didapatkan suatu masalah. Misalnya, ketika basis data perlu dilakukan perubahan untuk mengakomodasi produk baru, atau perusahaan memutuskan untuk mengubah citra, hal ini tidak hanya mempengaruhi perubahan code saja. Semua developer harus lebih terlibat agar dapat memastikan bahwa perubahan di salah satu bagian dari aplikasi tidak berdampak buruk kepada bagian – bagian lainnya (Pitt, 2012, p2). Masalah inilah yang MVC berusaha untuk atasi. MVC mendefinisikan wadah untuk semua code dan fitur dari aplikasi. Ketika perubahan code basis data diisolasi ke dalam model, view dan controller tidak akan break. Ketika artwork dari aplikasi berubah secara drastis, controller dan model akan aman dari break (Pitt, 2012, p3). 2.30.2 Yii MVC Menurut situs (http://www.yiiframework.com/doc/guide/1.1/id/basics.mvc), resmi Yii mengimplementasikan pola desain MVC dalam pemrograman web. MVC bertujuan untuk memisahkan logika bisnis dari pertimbangan antar muka pengguna agar memudahkan developer untuk mengubah setiap bagian tanpa mempengaruhi bagian lain. Pada MVC, model menggambarkan informasi dan aturan bisnis; tampilan (view) berisi elemen antar muka pengguna seperti teks, input form; sementara controller mengatur komunikasi antar model dan view. Selain implementasi MVC, Yii juga memperkenalkan front-controller yang disebut Aplikasi, dimana Aplikasi melakukan enkapsulasi konteks eksekusi dalam memproses sebuah request. Aplikasi mengumpulkan informasi mengenai request pengguna lalu dikirim ke controller yang sesuai untuk penanganan selanjutnya. Berikut diagram struktur statis aplikasi Yii: 77 Gambar 2. 25 Struktur Statis Aplikasi Yii (http://www.yiiframework.com/doc/guide/1.1/id/basics.mvc) 2.30.3 Alur Kerja Umum MVC Diagram berikut memperlihatkan alur kerja umum saat aplikasi Yii menangani request pengguna: 78 Gambar 2. 26 Alur Kerja Umum Aplikasi Yii (http://www.yiiframework.com/doc/guide/1.1/id/basics.mvc) 1. Pengguna membuat permintaan dengan URL http://www.example.com/index.php?r=post/show&id=1 dan server web menangani permintaan dengan menjalankan skrip bootstrapindex.php. 2. Skrip bootstrap membuat instance aplikasi dan menjalankannya. 3. Aplikasi mendapatkan rincian informasi permintaan pengguna dari komponen aplikasi bernama request. 4. Aplikasi menentukan controller dan aksi yang diminta dengan bantuan komponen adalah post yang aplikasi merujuk bernama pada urlManager. kelas PostController Controller dan aksi adalah show yang arti sebenarnya ditentukan oleh controller. 5. Aplikasi membuat instance controller yang diminta untuk selanjutnya menangani permintaan pengguna. Controller menentukan 79 aksi show merujuk pada sebuah metode bernama actionShow dalam kelas controller. Kemudian membuat dan menjalankan filter (kontrol akses, pengukuran) terkait dengan aksi ini. Aksi dijalankan jika diijinkan oleh filter. 6. Aksi membaca Post model di mana ID adalah 1 dari basis data. 7. Aksi meyiapkan view bernama show dengan model Post. 8. View membaca dan menampilkan atribut model Post. 9. View menjalankan beberapa widget. 10. View menyiapkan hasil yang dipasangkan dalam layout. 11. Aksi mengakhiri pembuatan view dan menampilkan hasil akhir kepada pengguna. 2.31 Hasil Penelitian Sejenis dan Sebelumnya Selama kami melakukan penelitian dan mengumpulkan informasi, kami menemukan beberapa hasil penelitian sejenis dimana memiliki ide yang sama dengan penelitian yang sedang kami jalankan. Hal yang membedakan hasil dari masing – masing penelitian sejenis yakni variasi dari fitur yang dibuat. Berikut beberapa hasil penelitian sejenis yang terbagi dalam beberapa bagian. Dalam jurnal “Mobile Shopping Mall Navigator” (Al-Sayyed, R. M., Suleiman, D. M., Marzouq, D. F., Al-Rifai, R. H., Al-Shweiki, R. S., 2012), disini Al-Sayyed beserta rekannya melakukan penelitian serupa mengenai aplikasi mall directory. Aplikasi yang mereka kembangkan bernama Mobile Shopping Mall Navigator (MSMN) dapat digunakan pada Pocket PC. Tujuan dari dibuatnya aplikasi ini yakni untuk mengatasi masalah yang terjadi pada mall di daerah Yordania: waktu, keramaian dan lokasi board directory. Aplikasi MSMN diharapkan dapat menfasilitasi dan meningkatkan pengalaman pengunjung mall ketika mengunjungi mall dengan membantu menavigasi tempat yang ingin dituju. Hasil akhir dari pengembangan aplikasi MSMN ini terbukti membantu pengunjung dalam mencari informasi toko – toko yang ada di dalam mall. Hal ini dapat terlihat dari hasil kuesioner yang disebarkan kepada 80 pengguna. Respon positif diperoleh dari sebagian besar responden yang melakukan testing dari aplikasi MSMN tersebut. Gambar 2. 27 Tampilan Aplikasi Mobile Shopping Mall Navigator Al-Sayyed, R. M., Suleiman, D. M., Marzouq, D. F., Al-Rifai, R. H., AlShweiki, R. S. (2012) 81 Overall Percentage Average for all Answers 35 30 25 20 15 10 5 0 Strongly Disagree Disagree Undecided Agree Strongly Agree Gambar 2. 28 Tampilan Hasil Survey Aplikasi Mobile Shopping Mall Navigator Al-Sayyed, R. M., Suleiman, D. M., Marzouq, D. F., Al-Rifai, R. H., Al-Shweiki, R. S. (2012) Penelitian serupa lainnya juga dilakukan oleh VijayaPrasad, P., Fadzlina, N., Saadi, M., Elfaki, A. O., Saadi, B. dalam jurnalnya yang berjudul “Shopping Mall Directory: A Detailed/-Guide Application for Android-Based Mobile Devices” (2011). Disini VijayaPrasad beserta rekannya melakukan penelitian serupa mengenai mall directory, yakni melakukan perancangan aplikasi yang bernama Location Based Wi-Fi Mall Indoor Directory (LBWMID) untuk platform Android. Aplikasi ini ditujukan untuk Tropicana City Mall dengan sistem penggunaan wi-fi dalam menentukan sistem posisi indoor. Tujuan dari dibuatnya aplikasi LBWMID yakni untuk mengatasi masalah navigasi pada mall serta membantu untuk menunjukkan lokasi pengguna berada sehingga dimudahkan jika ingin menuju ke lokasi tertentu dalam mall. Hasil yang diperoleh dari pengembangan aplikasi LBWMID yakni aplikasi dapat membantu untuk menghemat waktu dan tenaga dalam hal navigasi toko yang ingin dituju pada sebuah mall. 82 Gambar 2. 29 Tampilan Aplikasi Location Based Wi-Fi Mall Indoor Directory VijayaPrasad, P., Fadzlina, N., Saadi, M., Elfaki, A. O., Saadi, B. (2011)