PENGEMBANGAN APLIKASI RESERVASI RESTORAN JOGLO PARI SEWU MENGGUNAKAN CMS (CONTENT MANAGEMENT SYSTEM) WORDPRESS 4.6 (Studi Kasus di Restoran Joglo Pari Sewu)

(1)

PENGEMBANGAN APLIKASI RESERVASI RESTORAN JOGLO PARI SEWU MENGGUNAKAN

CMS (CONTENT MANAGEMENT SYSTEM) WORDPRESS 4.6 (Studi Kasus di Restoran Joglo Pari Sewu)

Skripsi

untuk memenuhi sebagian persyaratan mencapai derajat Sarjana S-1

Diajukan oleh Sekar Melati Arum Sari

20120140102

PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK

UNIVERSITAS MUHAMMADIYAH YOGYAKARTA 2016


(2)

iv

HALAMAN PERNYATAAN

Saya menyatakan bahwa skripsi tidak mengandung karya yang pernah diajukan untuk memperoleh gelar kesarjanaan di suatu Perguruan Tinggi, dan sepanjang pengetahuan sata juga tidak mengandung karya atu pendapat yang pernah ditulis atau diterbitkan oleh orang lain, kecuali secara tulisan diacu dalam naskah dan disebutkan dalam daftar pustaka.

Yogyakarta, 1 September 2016 Sekar Melati Arum Sari


(3)

v

PRAKATA

Puji syukur kehadirat Allah SWT yang telah melimpahkan segalanya sehingga penulis dapat menyelesaikan skripsi yang berjudul “Pengembangan Aplikasi Reservasi Restoran Joglo Pari Sewu Menggunakan CMS (Content

Management System) WordPress 4.6”. Laporan skripsi disusun untuk memenuhi

salah satu syarat dalam memperoleh gelar Sarjana Teknik (S.T) pada Program Studi S1 Teknik Informatika Universitas Muhammadiyah Yogyakarta.

Dalam melakukan penelitian dan penyusunan laporan skripsi penulis telah mendapatkan banyak dukungan dan bantuan dari beberapa pihak. Penulis mengucapkan terima kasih yang tak terhingga kepada:

1. Allah SWT atas segala limpahan rahmat dan karunianya.

2. Bapak Haris Setyawan, S.T., M.Eng. selaku pembimbing utama yang telah membimbing penulis dengan kesabaran dan ketulusan dalam pengembangan sistem.

3. Bapak Asroni, S.T, M.Eng. selaku pembimbing pendamping yang telah meluangkan waktu dan sangat sabar membimbing penulis dalam pembuatan skripsi.

4. Bapak Muhammad Helmi Zain Nuri, S.T., M.T. selaku Ketua Program Studi S1 Teknologi Informasi yang memberikan izin kepada penulis untuk belajar.

5. Para dosen Jurusan Teknologi Informasi Universitas Muhammadiyah Yogyakarta, Bapak Joko, Bapak Eko, Bapak Giga, Mas Damar, Mbak April, Bapak Slamet, Bapak Tony dan Mas Okto yang telah memberikan tambahan pengetahuan dan mengajarkan ilmunya kepada penulis selama perkuliahan.

6. Para staff Jurusan Teknik Informatika UMY, Mas Andhy, Mas Haris, Mas Reza, Mbak Lilis dan Mbak Novi yang senantiasa membantu penulis dalam urusan administrasi.


(4)

vi

7. Ibu dan Bapak yang dari penulis lahir sampai sekarang selalu memberikan kasih sayang dan doanya kepada penulis sehingga penulis dapat mencapai ke tahap sekarang.

8. Mbak Sally selaku pemilik Restoran Joglo Pari Sewu, yang telah memberikan kepercayaan kepada penulis.

9. Sahabat-sahabat yang selama ini selalu memberikan dukungan Kak Derini, Ziah, Ayu, Ida, Aris, Ingrid, Rizki, Yudi, Yogi, Adit dan teman-teman Kelas C serta teman-teman TI yang senantiasa berbagi ilmu dan pengalaman selama kuliah.

10.Pihak-pihak lainnya yang tidak dapat disebutkan satu per satu, yang telah memberikan bantuan kepada penulis, sehingga penulis dapat menyelesaikan penyusunan skripsi ini.


(5)

vii

DAFTAR ISI

HALAMAN PENGESAHAN I ... ii

HALAMAN PENGESAHAN II ... iii

PRAKATA ... v

DAFTAR ISI ... vii

DAFTAR GAMBAR ... xi

DAFTAR TABEL ... xiii

DAFTAR SINGKATAN ...xiiiv

INTISARI ... xv

ABSTRACT ... xvi

BAB I PENDAHULUAN ... 1

1.1. Latar Belakang ... 1

1.2. Perumusan Masalah ... 2

1.3. Tujuan Penelitian ... 2

1.4. Manfaaat Penelitian ... 2

1.5. Sistmatika Penulisan ... 3

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI ... 4

2.1. Tinjauan Pustaka ... 4

2.2. Landasan Teori ... 6

2.2.1 Aplikasi Berbasis Web ...6

2.2.2 CMS (Content Management System) ... 8

2.2.3 Domain Dan Hosting ... 8

2.3. Konsep Pengembangan Sistem ... 8

2.3.1 Arsitektur Website ... 8

2.3.2 Analisis Sistem Reservasi Online ... 10

2.3.3 Konsep Sistem Informasi Reservasi Online ...11

2.3.4 Analisa Dan Perancangan Sistem ... 12

2.4. Perangkat Lunak Pembangun Sistem ... 14


(6)

viii

2.4.2 MySQL versi 1.4.15.0 ... 14

2.4.3 Keunggulan MySQL ... 15

2.4.4 Nama Domain (Domain Name) ... 15

2.4.5 Rumah Tempat Website (Web Hosting) ... 15

2.4.6 Apache versi 2.0 ... 16

2.4.7 UML (Unified Markup Language) ...16

2.4.8 Adobe Photoshop CS5 ... 16

2.4.9 WordPress 4.6 ... 17

2.4.10 CMS (Content Management System) ... 17

BAB III METODOLOGI PENELITIAN ... 18

3.1. Peralatan Pendukung ...18

3.1.1 Perangkat Keras (Hardware) ... 18

3.1.2 Perangkat Lunak (Software) ... 18

3.2. Bahan Penelitian ... 18

3.2.1 Data Primer ... 18

3.2.2. Data Sekunder ... 19

3.3. Tahap Penelitian ... 20

3.4. Pengembangan Website ... 21

3.4.1 Perencanaan Website ... 21

3.4.2 Analisis Kebutuhan Website ... 22

3.4.3 Rancangan ... 23

3.5. Rancangan Antarmuka (User Interface) ... 32

3.5.1 Rancangan Antarmuka Halaman Utama (Home) ... 32

3.5.2 Rancangan Antarmuka Menu Food ... 32

3.5.3 Rancangan Antarmuka Menu Drink ... 34

3.5.4 Rancangan Antarmuka Menu Herbs ... 34

3.5.5 Rancangan Antarmuka Menu Package ... 35

3.5.6 Rancangan Antarmuka About Us ... 35

3.5.7 Rancangan Antarmuka Reservations ... 37

3.5.8 Rancangan Antarmuka Confirmations ... 38


(7)

ix

3.5.10 Rancangan Antarmuka Posts (Content Post) ... 39

3.5.11 Rancangan Antarmuka Footer ... 39

3.5.12 Rancangan Antarmuka Search ... 39

3.5.13 Rancangan Antarmuka Login Admin ... 41

3.6. Site Map ... 42

3.7. Pembangunan Perangkat Lunak ...42

3.8. Pengujian ... 43

BAB IV HASIL DAN PEMBAHASAN ... 44

4.1. Hasil ... 44

4.2. Pembangunan Sistem ... 44

4.2.1 Instalasi Aplikasi Server ... 44

4.2.2 Pembuatan Database ...45

4.3. Hosting dan Domain ... 45

4.3.1. Hosting dan Domain ... 45

4.3.2. cPanel (Control Panel) ... 47

4.3.3 Install WordPress ... 49

4.4. Antarmuka ... 51

4.4.1 Halaman Login WordPress (Admin) ... 51

4.4.2 Halaman Dashboard Admin ... 52

4.4.3 Halaman Home ... 53

4.4.4 Halaman Menu (Food) ... 54

4.4.5 Halaman Menu (Drink) ... 54

4.4.6 Halaman Menu (Herbs) ... 54

4.4.7 Halaman Menu (Package) ...56

4.4.8 Halaman About Us ... 56

4.4.9 Halaman Reservations ...57

4.4.10 Halaman Confirmations ... 58

4.4.11 Halaman Contact Us ... 59

4.5. Pengujian Sistem ...60

4.6. Pembahasan ... 68


(8)

x

5.1. Kesimpulan ... ... 69

5.2. Saran ... 69

DAFTAR PUSTAKA ... ... 71


(9)

xi

DAFTAR GAMBAR

Gambar 2.1 Arsitektur Website Yang Dikembangkan ... 9

Gambar 2.2 Proses Reservasi Online ... 10

Gambar 3.1 Alur Penelitian Dengan Model SLDC ... 20

Gambar 3.2 Hubungan Aktor Dalam Use Case Diagram ... 24

Gambar 3.3 Use Case Diagram Admin ... 25

Gambar 3.4 Use Case Diagram Pengunjung ... 26

Gambar 3.5Activity Diagram Proses Reservations dan Confirmations ... 27

Gambar 3.6Entity Relationship Diagram... 28

Gambar 3.7Class Diagram Aplikasi ... 30

Gambar 3.8 Rancangan Antarmuka Halaman Utama (Home) ... 33

Gambar 3.9 Rancangan Antarmuka Menu Food ... 33

Gambar 3.10 Rancangan Antarmuka Menu Drink ... 34

Gambar 3.11 Rancangan Antarmuka Menu Herbs ... 35

Gambar 3.12 Rancangan Antarmuka Menu Package ... 36

Gambar 3.13 Rancangan Antarmuka About Us... 36

Gambar 3.14 Rancangan Antarmuka Reservations ... 37

Gambar 3.15 Rancangan Antarmuka Confirmations ... 38

Gambar 3.16 Rancangan Antarmuka Contact Us ... 39

Gambar 3.17 Rancangan Antarmuka Posts (Content Post) ... 40

Gambar 3.18 Rancangan Antarmuka Footer ... 40

Gambar 3.19 Rancangan Antarmuka Search ... 40

Gambar 3.20 Rancangan Antarmuka Login Admin ... 41

Gambar 3.21 Perancangan Struktur Menu Joglo Pari Sewu ... 42

Gambar 4.1Running Apache dan MySQL di XAMPP ... 44

Gambar 4.2 Pembuatan Database dengan phpMyAdmin ... 45

Gambar 4.3 Tampilan Pembelian Hosting dan Domain. ... 46

Gambar 4.4 Konfirmasi Pembelian Hosting dan Domain. ... 46

Gambar 4.5 Tampilan cPanel1 ... 47


(10)

xii

Gambar 4.7 Tampilan cPanel3 ... 48

Gambar 4.8 Tampilan cPanel4 ... 48

Gambar 4.9 Tampilan SoftaculousPada cPanel ... 49

Gambar 4.10 Tampilan WordPress Pada Softaculous ... 49

Gambar 4.11 Tampilan Install WordPress ... 50

Gambar 4.12 Hasil Install WordPress ... 50

Gambar 4.13 Konfirmasi Peng-install-an Website ... 51

Gambar 4.14 Halaman Login WordPress ... 52

Gambar 4.15 Halaman Dashboard Admin ... 52

Gambar 4.16 Halaman Home ... 53

Gambar 4.17 Halaman Menu (Food) ... 54

Gambar 4.18 Halaman Menu (Drink)... 55

Gambar 4.19 Halaman Menu (Food) ... 55

Gambar 4.20 Halaman Menu (Package) ... 56

Gambar 4.21 Halaman About Us ... 57

Gambar 4.22 Halaman Reservations ... 58

Gambar 4.23 Halaman Confirmations ... 59


(11)

xiii

DAFTAR TABEL


(12)

xiv

DAFTAR SINGKATAN

Singkatan Keterangan

CMS Content Management System

cPanel Control Panel

CS Creative Suite

CSS Client Side Scripting

DBMS Database Management System

ERD Entity Relationship Diagram

GB Giga Byte

HTML Hyper Text Markup Language

HTTP Hyper Text Transfer Protocol

MB Mega Byte

PC Personal Computer

RAM Random Access Memory

SDLC System Development Life Cycle

SSS Server Side Scripting

SQL Structured Query Language

UCD User Centered Design

UML Unified Markup Language


(13)

(14)

(15)

xv

INTISARI

Restoran Joglo Pari Sewu merupakan salah satu restoran yang bergerak dibidang kuliner Indonesia yang berada di Yogyakarta. Selama ini restoran belum menyediakan pelayanan reservasi secara efektif dan efisien. Dalam melakukan reservasi pelanggan harus menghubungi pihak restoran terlebih dahulu via telepon dan restoran tidak dapat melakukan pelayanan reservasi selama 24 jam penuh. Joglo Pari Sewu membutuhkan sistem informasi yang handal sehingga dapat mempermudah pelanggan untuk melakukan reservasi di restoran secara online. Aplikasi web ini dikembangkan sebagai sebuah aplikasi yang memungkinkan administrasi untuk mengelola reservasi meja. Aplikasi ini dimaksudkan untuk membantu karyawan dalam membuat reservasi meja. Metode penelitian yang digunakan dalam perkembangan aplikasi ini adalah metode pengembangan SDLC

(System Development Life Cycle). Sedangkan metode pengujian menggunakan

metode black box, dimana metode ini digunakan untuk menguji efektivitas aplikasi. Website ini menggunakan CMS (WordPress Content Management

System) dan Business Finder wordpress theme. Hasil penelitian menunjukan

bahwa aplikasi ini memiliki kemampuan untuk membantu restoran dalam menangani reservasi meja dan promosi bisnis yang terdapat di Joglo Pari Sewu melalui situs jogloparisewu.com.


(16)

xvi ABSTRACT

Joglo Pari Sewu is one of Restaurant that is engaged in Indonesia culinary in Yogyakarta. Until now Restaurant has not yet provided reservation services effectively and efficiently. In making a reservation the customer must contact the restaurant in advance via telephone and the restaurant can not make reservation service for 24 hours straight. Joglo Pari Sewu requires a reliable information systems which can facilitate customers to make an online reservation at the restaurant. This web application was developed as an application that allows administrations to manage table reservations. This apllication was intended to assist employees in making table reservations. The method that used to develop this application is SDLC (System Development Life Cycle) method. While the tesing method using black box method, wherein the method was used to examine the effectiveness of the application. This website uses WordPress CMS (Content Management System) and Business Finder wordpress theme. The results suggested that this application has the ability to assist the restaurant in handling table reservations and business promotion contained in Joglo Pari Sewu uses websites jogloparisewu.com.


(17)

1

BAB I PENDAHULUAN

1.1. Latar Belakang

Joglo Pari Sewu merupakan salah satu restoran yang bergerak dalam bidang kuliner yang mengusung konsep traditional and vintage untuk menarik pelanggan. Dimana tempat yang asik dan menu makanan yang nikmat selalu menjadi tempat alternatif berkumpul dengan teman dan keluarga sebagai daya tarik dari Joglo Pari Sewu.. Joglo Pari Sewu memproduksi dan menjual olahan masakan, minuman dan jamu tradisional, terutama olahan khas Indonesia. Joglo Pari Sewu beroperasi mulai pukul 11.00 – 21.00 WIB dan berlokasi di Bromonilan RT.008 RW.003, Purwo Martani, Tirto Martani, Kalasan, Sleman, Daerah Istimewa Yogyakarta, Indonesia.

Semakin berkembangnya jaman, Joglo Pari Sewu ingin meningkatkan pemasarannya dengan memanfaatkan teknologi informasi secara maksimal. Promosi yang dilakukan Joglo Pari Sewu masih terbatas hanya melalui instagram

dan restoran offline saja. Karena pada saat ini telah banyak pesaing lain yang lebih maju sudah mempromosikan produknya kepada konsumen dengan memanfaatkan teknologi informasi khususnya internet. Oleh karena itu, untuk dapat bersaing dengan yang lain dibutuhkan suatu strategi pemasaran yang tepat dan inovatif serta dibutuhkannya sistem reservasi secara online pada Joglo Pari Sewu ini.

Dengan adanya uraian tersebut maka dapat digunakan metode pemasaran dengan media website yang sedang berkembang pada saat ini. Website adalah media penyebaran informasi yang sangat cepat, luas dan mudah diakses. Sangatlah penting untuk Joglo Pari Sewu ini mempromosikan produknya secara

online dalam media website untuk memajukan proses bisnis dalam restoran

tersebut, sehingga tujuan dan sasaran bisnis dari restoran tercapai. Website yang akan dibuat untuk Joglo Pari Sewu ini diharapkan dapat membantu mengatasi masalah pemasaran yang ada pada restoran ini. Website ini akan dibuat dengan menggunakan CMS (Content Management System) WordPress dan Sunrise


(18)

wordpress theme serta MySQL. Penulis ingin mengembangkan dan menyajikan

website restoran yang mudah penggunaanya dengan desain yang menarik.

1.2. Perumusan Masalah

Berdasarkan latar belakang yang telah diuraikan diatas, penerapan media promosi atau pemasaran restoran belum memanfaatkan teknologi informasi secara maksimal. Joglo Pari Sewu belum menggunakan media promosi, serta reservasi

online melalui website, sehingga banyak yang belum mengetahui menu dan

layanan apa saja yang disediakan oleh restoran.

1.3. Tujuan Penelitian

Tujuan dari penelitian ini adalah membuat website yang dapat mempromosikan dan memperkenalkan restoran ke publik atau masyarakat luas sesuai dengan pemanfaatan teknologi informasi saat ini. Serta membuat website

yang memiliki sistem reservasi secara online. Dan diharapkan dapat menjadi alternatif web based media berkomunikasi antara restoran dan publik dalam mempromosikan kuliner Joglo Pari Sewu.

1.4. Manfaaat Penelitian

Hasil dari penelitian ini diharapkan dapat memberikan manfaat, diantaranya adalah sebagai berikut:

1. Bagi Restoran Joglo Pari Sewu

a. Joglo Pari Sewu dapat melakukan promosi selama 24 jam melalui internet.

b. Sistem reservasi secara online melalui internet dapat memberikan kemudahan kepada para pelanggan yang ingin memesan meja terlebih dahulu di Joglo Pari Sewu.

2. Bagi Pelanggan

a. Dapat menghemat waktu, tenaga dan biaya bagi pelanggan yang ingin melakukan reservasi tempat berdasarkan tanggal dan waktu, karena


(19)

dapat dilakukan pemesanan reservasi meja terlebih dahulu tanpa harus datang ke restoran.

b. Mempermudah pelanggan dalam mendapatkan informasi yang terbaru dan lengkap mengenai profil, menu, layanan serta jasa dari restoran.

1.5. Sistmatika Penulisan

Dalam penyusunan skripsi ini, gambaran penulisan secara garis besar dengan sistematika penulisan sebagai berikut:

BAB I PENDAHULUAN

Bab ini membahsa tentang latar belakang, identifikasi masalah, tujuan dan manfaat penelitian serta sistematika penulisan.

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

Bab ini menjelaskan teori-teori yang menjadi acuan dalam penulisan, yaitu mulai dari penjelasan tentang teknologi, penjelasan tentang teori yang digunakan dalam membangun aplikasi hingga database yang digunakan.

BABIII METODE PENELITIAN

Bab ini membahas mengenai metode penelitian yang berisi mengenai sumber dan jenis data yang akan digunakan penulisan untuk melakukan penelitian. Selain itu terdapat juga rancangan antarmuka untuk aplikasi.

BAB IV HASIL DAN PEMBAHASAN

Bab ini menjelaskan mengenai hasil pembuatan website, implementasi sistem, hasil pengujian pada sistem yang telah dibuat.

BAB V KESIMPULA DAN SARAN

Bab ini menjelaskan mengenai kesimpulan dan saran yang dibutuhkan dari hasil penelitian yang telah dibuat.

DAFTAR PUSTAKA LAMPIRAN


(20)

4

BAB II

TINJAUAN PUSTAKA DAN LANDASAN TEORI

2.1. Tinjauan Pustaka

Kuliner adalah hasil olahan yang berupa masakan. Masakan tersebut berupa lauk pauk, makanan dan minuman. Kata kuliner menurut kamus Inggris – Indonesia (p.84) berasal dari kata culinary yang berarti masak memasak. Dalam kamus dwibahasa “An English-Indonesian Dictionary”, kuliner berarti segala

sesuatu yang berhubungan dengan dapur atau masakan. Dapat disimpulkan bahwa kuliner merupakan kata yang berhubungan dengan dapur, makanan dan minuman serta kegiatan memasak. Kata kuliner yang dikenal masyarakat adalah suatu gaya hidup yang dimana kegiatannya berupa mencari dan mencoba berbagai macam masakan dari berbagai daerah.

Website disebut juga site, situs, situs web, atau portal. Secara makna

sebuah website adalah sekumpulan halaman informasi yang disediakan melalui jalur internet sehingga bisa diakses di seluruh dunia selama terkoneksi dengan jaringan internet tanpa batasan ruang dan waktu.

Dewasa ini umumnya penjualan juga dapat didefinisikan sebagai salah satu kegiatan dalam perekonomian yang mengakibatkan berpindahnya hak milik dari penjual kepada pembeli yang menerima imbalan tertentu sesuai dengan yang telah disepakati. Salah satu cara mempermudah penjualan adalah dengan menerapkan teknologi informasi pada proses penjualan. Dengan adanya teknologi informasi maka pemasaran akan menjadi lebih maksimal.

Perkembangan teknologi informasi dalam bidang pemasaran khususnya secara online mengalami perkembangan yang sangat pesat. Berdasarkan beberapa kajian penulis terhadap penelitian terdahulu yang membahas tentang pemasaran dan reservasi online sejauh pemahaman belum pernah diteliti. Namun ada beberapa penelitian yang membahas tentang pemasaran produk secara online yang sudah pernah dilakukan.

Arrum Husna Pandayin (2012) melakukan penelitian yang berjudul


(21)

Kuliner Berbasis Web”. Penelitian ini berguna sebagai media pemasaran produk

dengan memanfaatkan website dengan metode UCD.

a. Persamaan penelitian saat ini dengan penelitian terdahulu adalah pengimplementasian XAMPP.

b. Perbedaan dari penelitian saat ini dengan penelitian terdahulu adalah belum tersedianya layanan reservasi online, sedangkan website saat ini menyediakan layanan reservasi secara online.

Zaimah (2011) melakukan penelitian yang berjudul “Sistem Informasi Makanan Khas (Kuliner) Kota Semarang Berbasis Web”. Penelitian ini bertujuan untuk membuat sistem informasi kuliner yang interaktif dengan menyajikan visualisasi yang menarik.

a. Persamaan penelitian saat ini dengan penelitian terdahulu adalah penggunaan MySQL untuk database-nya.

b. Perbedaan dari penelitian saat ini dengan penelitian terdahulu adalah terlalu meluasnya jangkauan yang digunakan, untuk seluruh tempat wisata kuliner yang ada di Semarang. Sedangkan website saat ini hanya berfokus kepada pengembangan satu restoran saja, sehingga dapat lebih akurat dalam memberikan informasi tentang restoran yang terkait.

Randy Frans Fela, Luthfi Zharif, Erlina Nur, Arifani, Rizal Friansyah, Mulia Ela Syifaurromah (2012) melakukan penelitian yang berjudul “Promosi Makanan Khas Indonesia Melalui Wirausaha Jasa Berbasis Website Indonesia-Food.com”. Penelitian ini bertujuan untuk memperluas nama website di berbagai tempat, agar lebih dikenal oleh masyarakat luas.

a. Persamaan penelitian saat ini dengan penelitian terdahulu adalah penggunaan WordPress CMS (Content Management System).

b. Perbedaan dari penelitian saat ini dengan penelitian terdahulu adalah penggunaan website yang hanya sebatas mempromosikan saja, sedangkan

website saat ini menampilkan info, menu, serta keseluruhan profil dari

Restoran Joglo Pari Sewu.

Berdasarkan dengan penelitian terdahulu yang telah dijelaskan diatas, dapat disimpulkan bahwa persamaannya adalah sama-sama membuat website


(22)

sebagai media promosi kuliner. Sedangkan perbedaanya adalah website ini menggunakan WordPress yang akan dikemas tampilannya semenarik mungkin dan dapat melakukan reservasi tempat di Restoran Joglo Pari Sewu secara online. Aplikasi ini dibuat sedimikian rupa mengikuti teknologi pada saat ini dengan menggunakan user friendly dan dibuat sesederhana mungkin sehingga memudahkan pengguna baru.

2.2. Landasan Teori

2.2.1 Aplikasi Berbasis Web

Aplikasi web merupakan suatu perangkat lunak komputer yang dikodekan kedalam bahasa pemograman yang didukung oleh perangkat lunak seperti HTML, JavaScript, CSS, Ruby, Phyton, PHP, Java dan bahasa pemograman lainnya. Aplikasi web adalah sebuah program yang disimpan di server dan dikirim melalui internet dan diakses melalui antarmuka browser (Rouse, 2011). Jadi dapat disimpulkan aplikasi web merupakan aplikasi yang diakses menggunakan teknologi browser dengan melalui jaringan internet dan intranet.

Keunggulan aplikasi berbasis web:

1. Aplikasi dapat dijalankan tanpa harus melakukan penginstalan.

2. Tidak memerlukan lisensi ketika menggunakan web based application, sebab lisensi telah menjadi tanggung jawab dari penyedia jasa aplikasi

web.

3. Dapat dijalankan di sistem operasi apapapun, aplikasi berbasis web dapat diakses dengan memiliki browser beserta akses jaringan internet.

4. Dapat diakses melalui media seperti komputer, smartphone atau tablet pc

yang sudah sesuai dengan standar.

5. Tidak memerlukan spesifikasi komputer yang tinggi untuk menggunakan aplikasi berbasis web ini, sebab sebagian besar proses dilakukan di web

server penyedia aplikasi berbasis web ini. Kekurangan aplikasi berbasis web:


(23)

1. Dibutuhkannya koneksi jaringan internet yang kuat dan stabil, hal ini bertujuan agar pada saat aplikasi dijalankan aplikasi tersebut dapat berjalan dengan baik dan lancar.

2. Dibutuhkan sistem keamanan yang baik dikarenakan aplikasi dijalankan secara terpusat, sehingga apabila server di pusat mengalami gangguan maka sistem aplikasi tidak dapat berjalan.

2.2.1.1 Pemograman Web

Pemograman web menggunakan bahasa berupa script yang terbagi menjadi 2 dalam cara kerja dan pemrosesannya, yaitu CSS (Client Side Scripting) dan SSS (Server Side Scripting)(M. Rudyanto Arif, 2011).

1. ClientSideScripting

Pengolahan untuk bahasa pemograman web ini dilakukan disisi client, proses pengolahan client side scripting dilakukan oleh browser sebagai

client nya.

2. ServerSideScripting

Server side scripting adalah bahasa pemograman web yang pengeksekusian

kode programnya dilakukan disisi server, kemudian hasil pengeksekusiannya akan ditampilkan pada sisi client.

2.2.1.2 Jenis-Jenis Website

Secara garis besar, website bisa digolongkan menjadi 2 jenis yaitu:

1. Website Statis

Website statis adalah web yang mempunyai halaman yang tidak berubah.

Untuk melakukan perubahan pada suatu halaman dilakukan secara manual dengan mengubah kode yang menjadi struktur dari website tersebut.

2. Website Dinamis

Website dinamis merupakan website yang secara struktur memungkinkan

untuk diperbaharui sesering mungkin. Biasanya selain halaman utama yang bisa diakses oleh user pada umumnya, juga disediakan halaman backend


(24)

dinamis adalah web berita atau web portal yang didalamnya terdapat fasilitas berita, polling dan sebagainya.

2.2.2 CMS (Content Management System)

Content Management System atau yang biasa disingkat menjadi CMS

merupakan sebuah perangkat lunak yang menyediakan tools / perangkat untuk pembuatan, penerbitan / publishing maupun pengelolaan suatu website

(Robertson, 2003 dalam Rancangan Bangun Portal E-commerce, 2012). Di dalam sebuah website terdapat konten / isi yang berisi informasi atau pengetahuan yang disajikan untuk pengguna. Konten merupakan suatu unit informasi digital yang digunakan untuk mengisi sebuah page (TreeWorks, 2005 dalam Rancang Bangun Portal E-commenrce, 2012). Konten yang dimaksud bias meliputi file-file elektronik, gambar-gambar, file-file, audio, video atau dokumen-dokumen elektronik.

2.2.3 Domain Dan Hosting

Untuk membuat sebuah situs atau website diperlukan domain dan hosting. Dua istilah ini adalah komponen utama dalam membangun sebuah website

sehingga dapat diakses oleh siapapun di seluruh penjuru dunia melalui akses internet. Hosting adalah suatu space atau tempat di internet yang kita gunakan untuk menyimpan data-data situs kita. Entah itu situs perusahaan, situs pribadi, situs blog, dan lain sebagainya. Setiap situs yang hendak kita buat online sehingga banyak orang bisa mengaksesnya, harus disimpan pada suatu host. Kini banyak tersedia host-host yang ditawarkan yang ada di internet. Mulai yang berbayar, sampai yang gratis sekalipun. Sedangkan domain adalah penamaan situs yang unik pada dunia internet. Unik disini berarti nama situs hanya dimiliki oleh satu orang.

2.3. Konsep Pengembangan Sistem

2.3.1 Arsitektur Website

Pembangunan sebuah sistem, diperlukan perancangan dari sistem yang akan dibuat. Oleh karena itu arsitektur website ini dibuat untuk menggambarkan bagaimana sistem akan berjalan.


(25)

website

Gambar 2.1 Arsitektur Website Yang Dikembangkan

a. Visitor atau Pengunjung

Pengunjung merupakan orang yang melihat website ini. Pengunjung disini adalah pengunjung baru maupun pengunjung lama yang sudah biasa mengunjungi website ini dengan menggunakan akses internet untuk melihat tampilan dan informasi yang ada di website.

b. Admin

Admin merupakan seseorang yang bertanggung jawab secara teknis terhadap operasional sebuah website. Administrator juga bertugas untuk mengelola isi konten pada website, server, database, atau aplikasi

multiuser.

c. Internet

Internet merupakan media bagi pengguna untuk menemukan atau mencari informasi, dalam hal ini internet digunakan pengguna untuk mengakses web Joglo Pari Sewu.

d. Website Joglo Pari Sewu

Website ini merupakan media pemasaran agar pengunjung dapat

mengetahui informasi mengenai restoran Joglo Pari Sewu yang berisi profil dari restoran, menu yang tersedia di restoran, serta jasa dan layanan


(26)

yang diberikan oleh restoran. Website ini menggunakn WordPress sebagai sitem manajemen kontennya.

e. Hosting Server

Server berfungsi untuk mentransfer seluruh aspek pemberkasan dalam sebuah halaman web yang terkait, termasuk didalamnya teks, gambar, video, dan lain-lain. Sedangkang hosting server adalah tempat atau jasa internet untuk membuat halaman website yang telah anda buat menjadi online dan bisa diakses oleh orang lain.

e. Database

Database digunakan untuk menyimpan data-data yang telah dimasukan oleh admin. Dalam hal ini software pengelolaan data yang digunakan adalah MySql.

2.3.2 Analisis Sistem Reservasi Online

Salah satu sumber daya yang tersedia bagi seorang pengelola adalah informasi, dimana informasi ini dapat dikelola seperti sumber daya yang lain yang membentuk suatu sistem informasi sesuai dengan konsep dasar informasi. Agar suatu sistem dapat dikenal dengan baik, maka sistem tersebut harus dipelajari. Sistem didefinisikan sebagai kumpulan dari beberapa elemen yang berinteraksi untuk mencapai tujuan tertentu. Analisis sitem reservasi online dibangun dengan mengikuti proses-proses yang telah berjalan pada website. Sistem reservasi online

restoran Joglo Pari Sewu dapat dilihat pada gambar 2.2.

Pengunjung website

www.jogloparisewu.com

E-mail

ATM website E-mail

www.jogloparisewu.com


(27)

Proses yang terjadi pada sistem reservasi online di Restoran Joglo Pari Sewu:

1. Pengunjung mengakses website Joglo Pari Sewu.

2. Pengunjung menuju ke halaman Reservation dan melakukan proses reservasi secara online dengan mengisi form yang telah disediakan. Pengunjung mengisi informasi dari pengunjung serta tanggal dan waktu yang diinginkan untuk melakukan reservasi.

3. Pengunjung mendapatkan e-mail konfirmasi pembayaran reservasi dan nomer rekening tujuan pembayaran reservasi, kemudian pengunjung melakukan konfirmasi pembayaran dengan menuju ke halaman

Confirmations pada website.

4. Pengunjung diberikan wakti 1x24 jam untu melakukan pembayaran dan konfirmasi, jika tidak maka reservasi akan dianggap hangus.

5. Pengunjung akan mendapatkan e-mail konfirmasi reservasi yang menjadi bukti bahwa reservasi yang dilakukan di restoran Joglo Pari Sewu telah berhasil dan e-mail tersebut dapat digunakan oleh pengunjung sebagai syarat saat datang ke restoran atau pengunjung cukup menyebutkan data yang ada didalam e-mailI tersebut saja kepada pelayan Joglo Pari Sewu. 6. Pengunjung segera melakukan konfirmasi via telepon jika ingin

membatalkan waktu dan hari reservasi.

2.3.3 Konsep Sistem Informasi Reservasi Online

Sistem Informasi merupakan kombinasi dari manusia, fasilitas atau alat teknologi, media, prosedur dan pengendalian yang ditunjukan untuk mengatur jaringan komunikasi yang penting, proses transaksi tertentu dan rutin membantu manajemen dan pemakaian intern dan ekstern dan menyediakan dasar untuk pengambilan keputusan yang tepat. John F. Nash (1995: 8).

Jadi dapat disimpulkan bahwa sistem informasi adalah suatu alat yang membantu dalam pengambilan keputusan bagi manajemen didalam operasi perusahaan sehari-hari dan informasi yang layak untuk pihak luar perusahaan.

Sistem informasi reservasi online adalah sistem yang dirancang atau didesain sesederhana mungkin yang bertujuan untuk memudahkan customer untuk


(28)

dapat melakukan pemesanan atau booking meja secara online. Sistem reservasi

online ini bertujuan untuk membantu restoran dalam berbagai hal seperti:

a) Admin dapat menerima laporan reservasi dari pelanggan secara langsung vie

e-mail.

b) Admin dapat memonitor tanggal dan waktu yang akan dibooking oleh

customer.

c) Admin dapat melakukan tindakan secara langsung untuk mengubah permintaan reservasi yang dilakukan oleh customer jika dibutuhkan.

Sistem informasi reservasi online ini sangat berperan dalam pengelolaan restoran, aktivitas reservasi di restoran yang dilakukan oleh customer dapat secara cepat serta akurat ditangani oleh admin dan informasi yang terjadi dapat diberikan

ke customer tepat waktu pada saat yang dibutuhkan.

2.3.4 Analisa Dan Perancangan Sistem

2.3.4.1 Analisis Aplikasi Web

Analisis sistem dapat didefinisikan sebagai penguraian dari suatu sistem informasi yang utuh ke dalam bagian-bagian komponennya dengan maksud untuk mengidentifikasikan dan mengevaluasi permasalahan, kesempatan, hambatan yang terjadi dan kebutuhan yang diharapkan sehingga dapat disusulkan perbaikannya.

Perancangan Sistem (System Design) secara umum dapat berupa penggambaran, perencanaan dan pembuatan sketsa atau pengaturan dari beberapa elemen yang terpisah ke dalam satu kesatuan yang utuh dan berfungsi. Termasuk mengkonfigurasikan komponen-komponen perangkat lunak dan perangkat keras dari suatu sistem. Perancangan sistem dapat diartikan sebagai berikut:

1. Tahap setelah analisis dari siklus pengembangan sistem. 2. Pendefinisian dari kebutuhan-kebituhan fungsional. 3. Persiapan untuk rancang bangun implementasi. 4. Menggambarkan bagaimana suatu sistem dibentuk.


(29)

2.3.4.2 Analisis Kebutuhan Aplikasi Website

Hambatan-hambatan yang terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan-perbaikannya. Menurut Robert J. Verzello/John Reuter III (Sumber: Analisa dan Desain Sistem Informasi, Jogiyanto HM, hal. 196), perancangan sistem adalah tahap setelah analisis dari siklus pengembangan sistem, pendefinisian dari kebutuhan-kebutuhan fungsional dan persiapan untuk rancang bangun implementasi, menggambarkan bagaimana suatu sistem dibentuk.

Menurut John Burch & Gary Grudnitski sebagaimana yang diungkap oleh Jogiyanto HM dalam buku “Analisis dan Desain Sistem Informasi”, perancangan sistem dapat didefinisikan sebagai penggambaran, perencanaan dan pembuatan sketsa atau pengaturan dari beberapa elemen yang terpisah ke dalam satu kesatuan yang utuh dan berfungsi.

Analisi kebutuhan secara singkat terdapat 7 jenis kebutuhan Requirements

Types dalam pengembangan Web sebagai berikut:

1. FunctionalRequirements

Menentukan kemampuan dan layanan dari web yang disediakan. Misalnya dalam Aplikasi Perbankan Online (Internet Banking) terdapat fasilitas transfer uang.

2. ContentRequirements

Menentukan isi aplikasi web atau konten yang terdapat dalam web yang dikembangkan.

3. QualityRequirements

Menentukan tingkat kualitas layanan dan kemampuan dalam hal-hal penting seperti keamanan, kinerja, manfaat dan kegunaan dari web.

4. SystemEnvironmentRequirements

Menentukan bagaimana aplikasi web dapat diterima oleh masyarakat. Jika aplikasi web”ubiquitous” berarti harus menyediakan layanan yang dapat dikustomisasi oleh usernya, kapanpun, dimanapun dan untuk perangkat apapun.


(30)

5. UserInterfaceRequirements

Menentukan kemudahan dari pengguna web oleh pengguna meliputi aspek penting yang meliputi struktur navigasi dan user interface.

6. EvolutionRequirements

Menentukan kemampuan web sesuai dengan evolusi yang berlangsung dengan melakukan peningkatan. Web harus dirancang up-to-date mengikuti perkembangan zaman.

7. ProjectConstraint

Menentukan kendala yang mungkin dihadapi dalam pengembangan web

seperti anggaran dan jadwal, keterbatasan teknik, pemeliharaan web, pengembangan teknologi, aturan pemerintah dan aspek budaya.

2.4. Perangkat Lunak Pembangun Sistem

2.4.1 XAMPP versi 5.6.21-0

XAMPP merupakan web server yang dapat dijalankan oleh berbagai sistem operasi Windows. Yang berguna untuk melayani dan mengfungsikan situs

web. XAMPP yang digunakan adalah XAMPP versi 5.6.21-0, menurut Riyanto (2010, 1), dikutip dalam (Choliviana, Triyono, & Sukadi, 2012), XAMPP merupakan paket PHP dan MySQL berbasis open source, yang dapat digunakan sebagai tool pembantu pengembangan aplikasi berbasis PHP, XAMPP mengkombinasikan beberapa paket perngkat lunak berbeda ke dalam satu paket.

Memanfaatkan XAMPP sebagai database karena XAMPP menyediakan aplikasi database MySQL dengan interface lebih mudah dalam pengoperasiannya, tool-tool yang disediakan cukup lengkap dan memenuhi kebutuhan perancangan database, selain itu XAMPP merupakan aplikasi tidak berbayar.

2.4.2 MySQL versi 1.4.15.0

MySQL merupakan sebuah server database open source yang terkenal yang digunakan berbagai aplikasi terutama untuk server atau membuat web. MySQL berfungsi sebagai SQL (Structured Query Language) yang dimiliki sendiri dan sudah diperluas oleh MySQL, umumnya digunakan bersamaan dengan


(31)

PHP untuk membuat aplikasi server yang powerfull. Menurut Anhar (2010, 45) “MySQL adalah salah satu DBMS (Database Management System) dari sekian banyak DBMS seperti Oracle, MSSQL, PostagreeSQL, dan lainnya. Pemograman PHP juga sangat mendukung / supportdengan database MySQL”.

2.4.3 Keunggulan MySQL

MySQL mempunyai kelebihan dapat diakses oleh banyak bahasa pemograman sebagai frontend. MySQL merupakan database server yang ideal untuk segala ukuran dengan gaya kemampuan kecepatan tinggi dalam melakukan proses data, multiuser dan query. MySQL mempunyai ukuran file lebih kecil dibandingkan dengan database lainnya.

2.4.4 Nama Domain (Domain Name)

Pengertian nama domain biasa disebut dengan Domain Name atau URL, adalah alamat unik di dalam internet yang digunakan untuk mengidentifikasikan sebuah website, atau dengan kata lain domainname adalah alamat yang digunakan untuk menemukan sebuah website dalam dunia internet.

Nama domain diperjual belikan secara bebas di internet dengan status sewaan pertahun. Nama domain sendiri mempunyai identifikasi ekstensi / akhiran sesuai dengan kepentingan dan lokasi keberadaan website tersebut. Penggunaan domain pada negara Indonesia adalah co.id (untuk nama perusahaan), ac.id (untuk pendidikan), go.id (untuk pemerintah) dan or.id (untuk organisasi). Pada penelitian ini nama domain yang digunakan Restoran Joglo Pari Sewu adalah

www.jogloparisewu.com.

2.4.5 Rumah Tempat Website (Web Hosting)

Web Hosting merupakan ruangan yang terdapat dalam hard disk tempat

menyimapan berbagai data, file-file, gambar dan sebagainya yang akan ditampilkan di website. Besarnya data yang akan dimasukan tergantung dari besarnya web hosting yang disewa / dipunyai, semakin besar web hosting semakin besar pula data yang dapat dimasukan dan ditampilkan dalam website. Web

Hosting juga diperbolehkan dengan menyewa. Besarnya hosting ditentukan

dengan ruangan hard disk berukuran MB (Mega Byte) atau GB (Giga Byte). Lama penyewaan web hosting rata-rata dihitung pertahun atau perbulan. Penyewaan web


(32)

hosting banyak dijumpai dengan baik di Indonesia maupun luar negeri. Pada penelitian ini Restoran Joglo Pari sewu menyewa web hosting pada www.riaucybersolution.net.

2.4.6 Apache versi 2.0

Server HTTP Apache atau server web / www Apache adalah server web

yang dapat dijalankan dibanyak sistem operasi (Unix, BSD, Linux, Microsoft Windows dan Novell Netware serta platform lainnya) yang berguna untuk melayani dan memfungsikan situs web. Protokol yang digunakan untuk melayani fasilitas web / www ini menggunakan HTTP.

Apache memiliki fitur-fitur canggih seperti pesan kesalahan yang dapat dikonfigurasikan, autentikasi berbasis basis data dan lain-lain. Apache juga didukung oleh sejumlah antarmuka pengguna berbasis grafik (GUI) yang memungkinkan penanganan server menjadi mudah. Apache merupakan perangkat lunak sumber terbuka yang dikembangkan dibawah naungan Apache Software

Foundation.

2.4.7 UML (Unified Markup Language)

UML (Unified Markup Language) merupakan bahasa permodelan secara

grafis yang digunakan untuk menspesifikasikan, memvisualisasikan, membangun dan mendokumentasikan seluruh rancangan aplikasi lunak. Penggunaan model ini bertujuan untuk mengidentifikasikan bagian-bagian yang termasuk dalam lingkup sistem didalam aplikasi. Model UML yang dipakai dalam pengembangan aplikasi

web ini antara lain Use Case Diagram, Activity Diagram, ER Diagram dan Class

Diagram.

2.4.8 Adobe Photoshop CS5

Adobe Photoshop atau biasa disebut Photoshop, adalah perangkat lunak editor citra buatan Adobe Systems yang dikhususkan untuk pengeditan foto atau gambar dan pembuatan efek. Perangkat lunak untuk pengeditan foto atau gambar dan pembuatan efek ini banyak digunakan oleh fotografer digital dan perusahaan iklan sehingga dianggap sebagai pemimpin pasar atau market leader untuk perangkat lunak pengolah gambar atau foto, bersama Adobe Acrobat, dianggap sebagai produk terbaik yang pernah diproduksi oleh Adobe Systems. Versi


(33)

kedelapan aplikasi ini disebut dengan nama Photoshop CS (Creative Suite), versi sembilan disebut Adobe Photoshop CS2, versi sepuluh disebut Adobe Pohotoshop CS3, versi kesebelas disebut Adobe Photoshop CS4 dan versi yang digunakan sekarang ini dalah Adobe Photoshop CS5.

2.4.9 WordPress 4.6

WordPress adalah sebuah aplikasi open source yang sangat populer. WordPress dibangun dengan bahasa pemrograman PHP dan database MySQL. Keduanya merupakan software open source. Selain sebagai blog, WordPress juga mulai digunakan sebagai sebuah CMS (Content Management System) karena kemampuannya untuk dimodifikasi dan disesuaikan dengan kebutuhan penggunanya. Template atau desain tampilannya mudah dimodifikasi sesuai keinginan pengguna. Sehingga apabila pengguna memiliki pengetahuan HTML yang memadai, maka pengguna tersebut dapat berkreasi membuat template

sendiri.

2.4.10 CMS (Content Management System)

CMS adalah aplikasi web yang berisikan template untuk mengelola isi halaman web secara mudah. CMS yang banyak terdapat di internet saat ini kebanyakan dibuat menggunakan scripting language PHP dan database-nya adalah MySQL. CMS adalah suatu sistem untuk men-publish, mengedit, memodifikasi, menghapus dan mengorganisir konten secara terpusat.


(34)

18

BAB III

METODOLOGI PENELITIAN

.

3.1. Peralatan Pendukung

Dalam penelitian ini dibutuhkan peralatan pendukung sistem informasi yang terdiri dari perangkat keras (hardware) dan perangkat lunak (software). Perangkat yang digunakan dalam penelitian sebagai penunjang keberhasilan perancangan dan pengimplementasian website, antara lain:

3.1.1 Perangkat Keras (Hardware)

a. PC (Personal Computer) / Laptop

b. 32/64 bit architecture processor

c. 2 GB RAM (Random Access Memory)

d. Operation System Windows XP/7/8

3.1.2 Perangkat Lunak (Software)

Pembuatan desain pada website Restoran Joglo Pari Sewu ini dikembangkan menggunakan WordPress. Sedangkan untuk penyempurnaan desain grafis agar website ini terlihat menarik maka digunakanlah Adobe Photoshop sebagai pengembang multimedia pada website ini.

Selain software tersebut, dibutuhkan pula sebuah database yang nantinya akan digunakan sebagai tempat penyimpanan data pada website ini. Database

yang digunakan adalah MySQL, serta web server XAMPP dan web browser.

3.2. Bahan Penelitian

Jenis data yang dikumpulkan dalam penelitian ini adalah data primer dan data sekunder, sebagai berikut:

3.2.1 Data Primer

Data primer adalah data yang berasal dari individu, kelompok, panel atau data terselubung. Dalam memperoleh data primer perlu dilakukan observasi dan wawancara.

1. Observasi


(35)

banyak digunakan alat penilaian dalam mengukur proses dan pelaku individu dalam suatu kegiatan yang dapat diamati. Jadi, untuk mengatakan bahwa pengamatan ini mampu mengukur dan menilai hasil dari proses belajar.

Pada pengamatan berperan serta, pengamat melakukan dua peran sekaligus, yaitu sebagai pengamat dan sekaligus menjadi anggota resmi dari kelompok yang diamati. Pada penelitian ini peneliti mendapatkan data dengan mengamati objek yang akan diteliti secara langsung di tempat penelitian, yaitu Restoran Joglo Pari Sewu pada tanggal 28 Mei 2016. 2. Wawancara

Wawancara adalah percakapan dengan tujuan tertentu. Dalam metode ini peneliti dan responden berhadapan langsung (tatap muka) untuk mendapatkan informasi secara lisan dengan mendapatkan data tujuan yang dapat menjelaskan masalah penelitian (Lexy J Moelong, 1991:135). Proses wawancara ini dilakukan di Restoran Joglo Pari Sewu untuk mendapatkan data dengan melakukan dialog / tanya jawab langsung dengan pihak restoran yang dapat memberikan informasi yang dibutuhkan oleh penulis. Tujuan melakukan wawancara adalah untuk mengetahui data dan informasi, serta sistem yang dibutuhkan oleh restoran dari segi arsitektur aplikasi, teknologi yang digunakan serta pemanfaatannya.

3.2.2. Data Sekunder

Data sekunder merupakan data yang sudah tersedia sehingga kita tinggal mencari dan mengumpulkan, data ini diperoleh melalui data yang telah diteliti dan dikumpulkan oleh pihak lain yang berkaitan dengan permasalahn penelitian. Data sekunder diperoleh melalui studi kepustakaan dan landasan teori melalui berbagai jurnal, laporan, artikel dan referensi yang diambil dari perpustakaan maupun internet untuk mendapatkan data yang diperlukan.


(36)

3.3. Tahap Penelitian

Sebagai pengembangan pada sistem penelitian ini maka akan digunakan model SDLC (Software Development life Cycle) pengembangan atau rekayasa

website, berikut ini adalah gambaran dari model SDLC:

Gambar 3.1 Alur Penelitian Dengan Model SLDC

a. Tahap Perencanaan

Pada tahap perencanaan ini membahas studi tentang kebutuhan pengguna, serta kelayakan baik secara teknis maupun secara teknologi. Pada tahap ini pula dilakukan perencanaan tentang sistem yang akan dibangun. Dalam hal ini website Restoran Joglo Pari Sewu. b. Tahap Analisis

Pada tahap ini dilakukan proses pendalaman mengenai segala permasalahan dan resiko pada pengguna.

c. Tahap Perancangan

Pada tahap perancangan ini menyangkut sistem dimana akan diberikannya solusi dari segala masalah yang ada setelah dilakukannya tahap analisis.

d. Tahap Implementasi

Pada tahapan ini akan dilakukannya implementasi yang ada pada tahap perencanaan kesituasi nyata dengan pemilihan perangkat keras

(hardware) dan penyusunan desain. Untuk implementasi yaitu dengan


(37)

proses desain yang hasilnya akan dimasukan kedalam hosting server yang disediakan.

e. Tahap Pengujian

Tahap pengujian adalah tahap yang menentukan apakah desain yang sudah dibuat telah sesuai dengan kebutuhan pengguna atau belum. Tujuan sari tahap pengujian ini adalah untuk meminimalisir cacat pada desain website ini, sehingga apa saja yang ada pada sistem yang dikembangkan dapat berjalan sebaik mungkin. Dan pada tahap ini dilakukan pula pengujian sesuai dengan tujuan serta manfaat mengapa website ini dibuat. Lalu dilakukan pengujian dengan meninjau langsung peningkatan kinerja sebelum dan sesudah adanya

website ini yang mendukung perkembangan Restoran Joglo Pari sewu.

f. Tahap Pemeliharaan

Pada tahap ini dimana dilakukannya perawatan dan penelitian

website. Jika diperlukan akan dilakukan perbaikan kecil kemudian jika

periode sudah habis maka akan masuk lagi pada tahap perencanaan.

3.4. Pengembangan Website

Pengembangan website dilakukan dengan mebuat website untuk Restoran Joglo Pari Sewu yang dimulai dari perencanaan lalu analisis kebutuhan sebagai penunjang, agar dapat mencapai tujuan penggunaan website untuk meningkatkan kinerja serta pemasaran Restoran Joglo Pari Sewu. Website yang dikembangkan untuk Restoran Joglo Pari Sewu merupakn jenis website dinamis.

3.4.1 Perencanaan Website

Pada perencanaan pertama kali website ini dibuat, ditunjukan untuk menjadi media promosi online yang menjelaskan layanan yang diberikan Restoran Joglo Pari Sewu untuk mempromosikan produk atau menu yang ditawarkan. Selain itu website ini berguna untuk memperluas jangkauan promosi serta meningkatkan daya tarik pengunjung terhadap Restoran Joglo Pari Sewu. Agar website ini dapat lebih berkembang maka website untuk Restoran Joglo Pari Sewu ini memberikan layanan reservasi meja secara online serta menampilkan


(38)

berbagai macam hidangan menu yang tersedia di restoran. Terdiri dari 2 (dua) sisi

website yaitu admin site dan client site. Pada dashboard admin site terdapat

halaman gallery dan reservation yang akan digunakan oleh admin. Lalu pada

client site terdapat halaman home, menu, food, drink, herbs, package, about us,

reservations, confirmations dan contact us.

3.4.2 Analisis Kebutuhan Website

Dari hasil kebutuhan yang didapat dari berbagai sumber dan diskusi bersama dengan Joglo Pari Sewu, maka didapatkanlah beberapa masukan untuk mengembangkan aplikasi berbasis web ini agar sesuai dengan tujuan dan manfaatnya, seperti berikut:

a. Halaman Login admin untuk masuk ke dashboard admin.

b. Halaman Home sebagai halaman utama website Restoran Joglo Pari Sewu.

c. Halaman Menu Food untuk memberikan informasi berupa daftar menu makanan yang berisi gambar dan nama mengenai makanan yang tersedia di Restoran Joglo Pari Sewu.

d. Halaman Menu Drink untuk memberikan informasi berupa daftar menu minuman yang berisi gambar dan nama mengenai minuman yang tersedia di Restoran Joglo Pari Sewu.

e. Halaman Menu Herbs untuk memberikan informasi berupa daftar menu jamu tradisional yang berisi gambar dan nama mengenai jamu tradisional yang tersedia di Restoran Joglo Pari Sewu.

f. Halaman Menu Package untuk memberikan informasi berupa daftar menu paket yang berisi gambar dan nama mengenai paket-paket apa saja yang tersedia di Restoran Joglo Pari Sewu.

g. Halaman About Us untuk menyampaikan informasi dan alamat yang terkait tentang Joglo Pari Sewu.

h. Halaman Reservations untuk memberikan form reservations yang dapat diisi oleh pengunjung untuk melakukan booking meja di Joglo Pari Sewu. i. Halaman Confirmations untuk memberikan form confirmations yang


(39)

Joglo Pari Sewu.

j. Halaman Contact Us untuk menyampaikan informasi kontak dari Joglo Pari Sewu yang dapat dihubungi.

3.4.3 Rancangan

Metode perancangan yang digunakan adalah UML (Unified Modeling

Language). Model UML yang dipakai dalam pengembangan adalah model Use

Case Diagram, Activity Diagram dan Class Diagram. Selain itu dilakukan

perancangan basis data dengan menggunakan ER Diagram.

3.4.3.1 Use Case Diagram

Berdasarkan analisis kebutuhan dibuatlah use case diagram untuk membantu perancangan aplikasi website ini. Terdapat 2 aktor, yaitu:

a. Admin adalah yang berperan sebagai penanggung jawab penuh untuk mengurus operasional website. Admin juga memiliki otoritas untuk menambah, mengedit dan menghapus artikel dan data yang terdapat pada

website.

b. Pengunjung adalah pengunjung web yang hak aksesnya hanya dapat melihat isi dari konten web tersebut dan dapat melakukan reservasi /

request booking meja.

Berikut adalah use case yang telah teridentifikasi untuk dibuat pada use

case diagram:

Login: untuk autentikasi admin untuk dapat mengakses dashboard admin.

 Data Menu: untuk menambahkan, memperbaharui atau menghapus data gambar yang dimasukan.

 Data Booking: untuk menambahkan, mengedit atau menghapus data

reservations.

Create Reservations: untuk membuat permintaan reservasi baru.

CreateConfirmations: untuk mengkonfirmasikan data reservasi.

 Home: untuk melihat info yang ada di halaman Home.

 Sub Menu Makanan: untuk melihat menu-menu makanan, minuman, jamu tradisional dan pilihan paket apa saja yang tersedia di Joglo Pari Sewu.


(40)

About Us: untuk melihat informasi mengenai Joglo Pari sewu.

Reservations: untuk melihat form reservations yang telah tersedia di

website.

Confirmations: untuk melihat form konfirmasi yang telah tersedia di

website.

Contact Us: untuk melihat kontak dan alamat Joglo Pari sewu.

Data Menu

Create Confirmations Data Booking

Login

Home

Sub Menu Makanan

About Us

Reservations

Contact Us

<<include>>

<<include>>

Admin

Pengunjung

<<include>>

<<include>>

<<include>>

<<include>>

<<include>>

<<include>> Create Reservations

<<include>>

Confirmations

<<include>>


(41)

Pada gambar 3.2 menunjukan bagaimana hubungan antara aktor dan use case. Pada Gambar tersebut dapat dilihat perbedaan otoritas admin dan pengunjung. Karena pengunjung hanya dapat melihat saja. Sedangkan admin dapat melakukan login, memasukan data dan memperbaharui data.

Create Confirmations Create Reservations

Login Home

Sub Menu Makanan

About Us

Reservations

Contact Us

<<include>>

Admin

<<include>> <<include>> <<include>> <<include>> <<include>>

<<include>> Data Menu

<<include>> <<include>>

Confirmations

<<include>> Data Booking

Gambar 3.3 Use Case Diagram Admin

Pada gambar 3.3 admin melakukan login pada dashboard wordpress, admin dapat menambah, mengubah dan menghapus data. Pada saat pengunjung melakukan reservasi dan konfirmasi maka admin akan segera merekap data kemudian melakukan tindakan untuk memberikan konfirmasi via email kepada pengunjung.


(42)

Create Confirmations

Home

Sub Menu Makanan

About Us

Reservations

Contact Us Pengunjung

Create Reservations

Confirmations

Gambar 3.4 Use Case Diagram Pengunjung

Pada gambar 3.4 pengunjung mengakses halaman websites Joglo Pari Sewu, kemudian pengunjung dapat melihat menu-menu dan sub menu yang ada pada websites dan pengunjung dapat melakukan reservasi online. Setelah melakukan reservasi secara online pengunjung dapat melakukan pembayaran biaya reservasi dan pengunjung dapat melakukan konfirmasi pembayaran di

websites Joglo Pari Sewu. Konfirmasi pemesanan serta pembayaran akan secara

langsung dikirimkan melalui e-mail.

3.4.3.2 Activity Diagram

Gambar berikut menjelaskan kegiatan yang bisa dilakukan pengunjung dan admin pada website. Pengunjung dapat melihat semua halaman pada situs


(43)

klien yang ada di website ini. Dengan desain dinamis, pengunjung dapat memilih menu item untuk melihat menu halaman yang ingin dilihat. Dimulai dengan halaman Home, lalu halaman Menu makanan dimana terdapat sub menu yang berisi gambar-gambar berupa menu apa saja yang tersedia di Joglo Pari Sewu. Kemudian halaman About Us yang isinya berupa informasi mengenai restoran dan alamat Joglo Pari Sewu. Kemudian menuju ke halaman Reservations yang berisi form reservations dan form confirmations yang dapat diisi oleh pengunjung. Kemudian halaman terakhir yaitu halaman Contact Us untuk mengetahui kontak dari Joglo Pari Sewu.

Activity Diagram Reservations

Admin

Pengunjung

P

ha

se

Menerima Form Reservasi

Konfirmasi Memberikan Email Pembayaran Mengakses Website

Membuka Menu Reservations

Mengisi Form Reservasi

Request Booking

Menerima Email Penolakan Menerima Email Konfirmasi Diterima Tidak

Ya Menerima Email Pembayaran Via

Email

Membuka Menu Confirmations

Upload Bukti Transfer Menerima Bukti Transfer


(44)

Pada gambar 3.5 dijelaskan pengunjung mengakses website dan membuka halaman Reservations yang kemudian akan ditampilkan oleh website. Lalu pengunjung diminta untuk mengisi form reservasi yang telah tersedia jika pengunjung ingin melakukan reservasi secara online. Kemudian pengunjung akan menerimana e-mail pembayaran reservasi, setelah melakukan pembayaran pengunjung akan melakukan konfirmasi dengan meng-upload bukti transfer pada halaman Confirmations. Reservasi dan konfirmasi yang dilakukan pengunjung akan berhasil jika pengunjung menerima e-mail konfirmasi balasan dari admin.

3.4.3.3 ERD (Entity Relationship Diagram)

Untuk pengembangan aplikasi pemodelan basis data yang digunakan adalah ER Diagram. ER Diagram merupakan diagram yang digunakan untuk merancang basis data dan memperlihatkan relasi antar entitas atau object dengan atributnya. Tujuan ER Diagram ini adalah untuk memberikan gambaran umum tentang sistem yang akan dikembangkan sehingga mempermudah perancangan basis data. Gambar berikut ini menjelaskan hubungan relasi antar data dalam basis data yang terdapat di dalam sistem Joglo Pari Sewu.

booking users_admin submission time party name email user_email user_nicename id user_pass id name email files_url menambahkan photos id folder_id attachment_id folder date title id memiliki melakukan untuk date id phone message memilki booking_date id date * *

* i i *

i

i

i *


(45)

Gambar 3.6 menunjukan Entity Relationship Diagram dan memiliki 6 buah entitas yang masing-masing memiliki atribut dan relasi:

1. Entitas users_admin memiliki relasi one-to-many dengan submission, artinya admin dapat melakukan banyak konfirmasi untuk reservasi yang dilakukan pengunjung.

2. Entitas submissions memiliki relasi one-to-one dengan booking, artinya satu konfirmasi hanya dapat dilakukan untuk satu booking (reservasi).

3. Entitas booking memiliki relasi many-to-one dengan booking_date, artinya dalam satu tanggal, dapat dilakukan banyak reservasi.

4. Entitas user_admin memiliki relasi one-to-many dengan photos, artinya admin dapat mengunggah banyak gambar ke dalam website.

5. Entitas photos memiliki relasi many-to-many dengan folder, artinya gambar yang diunggah oleh admin bisa dimasukkan ke banyak album dan satu album bisa menyimpan banyak gambar.


(46)

3.4.3.4 Class Diagram

Class Diagram yang digunakan dalam aplikasi dapat dilihat pada gambar

3.7. sapAdminPage_2_0_1 +title:String +modify_required_capability(cap:var):var +menu_title:String +description:String +add_admin_menu():void +add_section(section:var):void +capability:var +id:var +sections:array +show_button:boolean +setup_section:var +sanitize_callback(value:var):var +display_admin_menu():void +display_page_title():void +get_current_page(request:var):var -parse_args(args:var):void +register_admin_menu():void SimplePie_Parse_Date -date:string +get():object -day:array -month:array +parse(date:String):TimeStamp +add_callback(callback_callable):void -timezone:array -day_pcre:string -month_pcre:string -built_int:array -user_array +date_w3cdtf(date:Date):Timestamp +remove_rfc2822_comments(string:String):String +date_rfc2822(date:Date):Timestamp +date_rfc850(date:Date):Timestamp +date_asctime(date:Date):Timestamp +date_strtotime(date:Date):Timestamp rtbBooking +request_inserted:String

+add_log(type:var, title:string, message:String, datetime:Date):void +request_processed:String +field_has_error(field_slug:string):boolean +format_date(date:var):var +insert_booking():boolean +insert_post_data():boolean +is_field_empty(slug:var):boolean +is_valid_submission():boolean +load_post(post:var):boolean +load_wp_post(post:var):void +prepare_request_data():void +validate_submission():void GridGallery_Galleries_Model_Galleries #table:String +add(title:String):boolean

+createFromRequest(request:var, lang:var, config:var):boolean +deleteFromRequest(request:var, lang:var, hooksPrefix:var):boolean +extend(gallery;var):var

+getAll():array +getById(id:var):array +getList():array +getListWithThumnails():array

+isExcluded(galleryId:int, folderId:int, photoId:int):boolean +rename(galleryId:var, title:string):boolean +renammeFromRequest(request:var, lang:var):void +setDefaultSettings(galleryId:int):Boolean +setLogger(logger:var):void +setSettings(galleryId:int, settingId:int):boolean FLPhotoModule #editor:var #_get_cropped_demo_url():var #_get_cropped_path():array #_get_editor():var #_get_uncroppedurl():String #_has_source():boolean +crop():var +delete():void +enqueue_scripts():void +get_all():String +get_attributes():var +get_classes():var +get_data():var +get_link():String +get_src():var +function update(settings:var):var +data:var WPCF_Submission -contact_form:var +get_instance(contact_form: WPCF&_ContactForm):object -status:string -posted_data:array +get_status():string +is(status:string):boolean -uploaded_files:array -skip_mail:boolean -response:string -invalid_fields:array -meta:array +get_response():string +get_invalid_field(name:string):var +get_invalid_fields():var +get_posted_data(name:string):string +setup_posted_data():var +sanitize_posted_data(value:var):var +submit():string +validate():boolean +accepted():boolean +spam():boolean +verify_name():boolean +blacklist_check():boolean +mail():boolean +uploaded_files():var +add_uploaded_files(name:string, file_path:var):void +removeuploaded_files():void +get_meta(name:string):var * * * 1 1 1 1 * 1 * -instance:var +load_post_metadata():void

Gambar 3.7Class Diagram Aplikasi

Berikut penjelasan tentang gambar 3.7:

a. Class sapAdminPage_2_0 digunakan untuk admin yang memiliki atribut

title, menu_title, description, capability, id, sections, show button dan

setup_function. Memiliki method modify_required_capability yang


(47)

pengaturan, method register_admin_menu digunakan untuk pengaturan

callback dan method get_current_page yang digunakan untuk menampilkan

halaman baru.

b. Class WPCF_Submission digunakan untuk konfirmasi yang memiliki

atribut instance, contact_form, status, posted_date, uploaded_files,

skip_mail, response, invalid_fields dan meta. Memiliki method submit yang

digunakan untuk memasukan data yang diinput dan method uploaded_files

yang digunakan untuk meng-upload file yang ingin diunggah sebagai bukti pembayaran.

c. Class rtbBooking digunakan untuk reservasi yang memiliki atribut

request_processed, dan request_inserted. Memiliki method load_post yang

digunakan untuk menampilkan informasi booking dari method WP_post,

method prepare_request_data digunakan untuk menyiapkan data booking

dari database untuk ditampilkan di booking form dan insert_booking

digunakan untuk memasukan booking baru ke database.

d. Class SimplePie_Parse_Date digunakan untuk mendapatkan tanggal yang

memiliki atribut date, day, month, timezone, built_in, day_pcre, month_pcre

dan user. Memiliki method parse yang digunakan untuk menguraikan tanggal, method date_asctime yang digunakan untuk menguraikan format tanggal dan method get yang digunakan untuk mendapatkan objek.

e. Class GridGallery_Galleries_Model_Galleries digunakan untuk album

gambar yang memiliki atribut table. Memiliki method getById yang digunakan untuk mengembalikan data dari galeri berdasarkan Id, method

getAll untuk mengembalikan semua susunan dari galeri, method add

digunakan untuk menambahkan galeri kosong ke database dan mehod

delete digunakan untuk menghapus galeri berdasarkan Id.

f. Class FLPhotoModule digunakan untuk gambar yang memiliki atribut

_editor dan data. Memiliki method update yang digunakan untuk

memperbaharui gambar, method delete yang digunakan untuk menghapus gambar dan method get_data yang digunakan untuk mendapatkan data gambar berdasarkan url dan bisa dimasukan ke library.


(1)

Solikhan, Ahmad, dkk. 2014.

Upaya Meningkatkan Pelayanan Restoran Dalam

Melayani Tamu di Jogjakarta Plaza Hotel

, Khasanah Ilmu 5, no. 1.

Zaimah. 2012.

Sistem Informasi Makanan Khas (Kuliner) Kota Semarang


(2)

LAMPIRAN

Source Code Aplikasi

1.

Source Code Class rtbBooking

<?php

if ( !defined( 'ABSPATH' ) ) exit; if ( !class_exists( 'rtbBooking' ) ) {

/*Class to handle a booking for Restaurant Table Bookings*/ class rtbBooking {

public $request_processed = false;

/*Whether or not this request was successfully saved to the database. */ public $request_inserted = false;

public function __construct() {}

/*Load the booking information from a WP_Post object or an ID*/ public function load_post( $post ) {

if ( is_int( $post ) || is_string( $post ) ) { $post = get_post( $post ); }

if ( get_class( $post ) == 'WP_Post' && $post->post_type == RTB_BOOKING_POST_TYPE ) {

$this->load_wp_post( $post ); return true;

} else {return false; }

}

public function load_wp_post( $post ) {

// Store post for access to other data if needed by extensions $this->post = $post; $this->ID = $post->ID; $this->name = $post->post_title; $this->date = $post->post_date;

$this->message = $post->post_content; $this->post_status = $post->post_status; $this->load_post_metadata();

do_action( 'rtb_booking_load_post_data', $this, $post );

}

public function load_post_metadata() { $meta_defaults = array( 'party' => '', 'email' => '', 'phone' => '', 'date_submission' => '', 'logs' => array(),) ;

$meta_defaults = apply_filters( 'rtb_booking_metadata_defaults', $meta_defaults ); if ( is_array( $meta = get_post_meta( $this->ID, 'rtb', true ) ) ) {

$meta = array_merge( $meta_defaults, get_post_meta( $this->ID, 'rtb', true ) ); } else {

$meta = $meta_defaults; }

$this->party = $meta['party']; $this->email = $meta['email']; $this->phone = $meta['phone'];

$this->date_submission = $meta['date_submission']; $this->logs = $meta['logs'];

}

/*Prepare booking data loaded from the database for display in a booking*/

public function prepare_request_data() {

// Split $date to $request_date and $request_time if ( empty( >request_date ) || empty( $this->request_time ) ) {

$date = new DateTime( $this->date );

$this->request_date = $date->format( 'Y/m/d' );

$this->request_time = $date->format( 'h:i A' );

} }

}//so many source there } // endif;

2.

Source Code Class SimplePie_Parse_Date

<?php /* Date Parser * @package SimplePie * @subpackage Parsing */

class SimplePie_Parse_Date {

/*Parse C99's asctime()'s date format*/ public function date_asctime($date) {

static $pcre; if (!$pcre) {

$space = '[\x09\x20]+';

$wday_name = $this->day_pcre; $mon_name = $this->month_pcre; $day = '([0-9]{1,2})'; $hour = $sec = $min = '([0-9]{2})'; $year = '([0-9]{4})'; $terminator = '\x0A?\x00?'; $pcre = '/^' . $wday_name . $space . $mon_name . $space . $day . $space . $hour . ':' . $min . ':' . $sec . $space . $year . $terminator . '$/i';

}

1: Day name 2: Month 3: Day


(3)

4: Hour 5: Minute 6: Second 7: Year */ $month = $this->month[strtolower($match[2])];

return

gmmktime($match[4], $match[5], $match[6], $month, $match[3], $match[7]); }

if (preg_match($pcre, $date, $match))

{

/*Capturing subpatterns: 1: Day name 2: Month 3: Day 4: Hour 5: Minute 6: Second 7: Year*/ $month = $this->month[strtolower($match[2])];

return gmmktime($match[4], $match[5], $match[6], $month, $match[3], $match[7]); }

else {

return false; }

} }

3.

Source Code Class WPCF7_Submission

<?php

class WPCF7_Submission { private static $instance; private $contact_form; private $status = 'init'; private $posted_data = array(); private $uploaded_files = array(); private $skip_mail = false; private $response = ''; private $invalid_fields = array(); private $meta = array(); private function __construct() {}

public static function get_instance( WPCF7_ContactForm $contact_form = null ) { if ( empty( self::$instance ) ) {

if ( null == $contact_form ) { return null; }

self::$instance = new self; self::$instance->contact_form = $contact_form;

self::$instance->skip_mail = $contact_form->in_demo_mode(); self::$instance->setup_posted_data();

self::$instance->submit(); } elseif ( null != $contact_form ) {

return null; }

return self::$instance; }

public function get_status() { return $this->status; }

public function is( $status ) {

return $this->status == $status; }

public function get_response() {

return $this->response; }

public function get_invalid_field( $name ) {

if ( isset( $this->invalid_fields[$name] ) ) { return $this->invalid_fields[$name];

} else {

return false; }

}

public function get_invalid_fields() { return $this->invalid_fields; }

public function get_posted_data( $name = '' ) { if ( ! empty( $name ) ) {

if ( isset( $this->posted_data[$name] ) ) {

return $this->posted_data[$name];

} else {

return null; }

}

return $this->posted_data; }//so many source there


(4)

4.

Source Code Class GridGallery_Galleries_Model_Galleries

<?php

/*Class GridGallery_Photos_Model_Folders * Folders

* @package GridGallery\Photos\Model*/

class GridGallery_Photos_Model_Folders extends Rsc_Mvc_Model {

/** * @var string */ protected $table; /** * @var bool */

protected $debugEnabled; /**

* @var string */

protected $lastError; /**

* @var int */

protected $insertId; /** * Constructor */

public function __construct($debugEnabled = false) {

parent::__construct();

$this->table = $this->db->prefix . 'gg_folders'; $this->debugEnabled = (bool)$debugEnabled; }

public function getInsertId() {

return $this->insertId; }

/*Adds the new album to the database*/

public function add($title){

$title = htmlspecialchars($title, ENT_QUOTES, get_bloginfo('charset')); $query = $this->getQueryBuilder()->insertInto($this->table) ->fields('title', 'date')

->values($title, date('Y-m-d H:i:s')); if (!$this->db->query($query->build())) { $this->lastError = $this->db->last_error; return false; }

$this->insertId = $this->db->insert_id; return true; }

public function getById($id) {

$query = $this->getQueryBuilder()->select('*') ->from($this->table)

->where('id', '=', (int)$id);

if ($folder = $this->db->get_row($query->build())) { return $this->extend($folder);}

return null; } }

5.

Source Code Class FLPhotoModule

<?php

/*Class GridGallery_Photos_Model_Photo *@package GridGallery\Photos\Model*/

class GridGallery_Photos_Model_Photos extends Rsc_Mvc_Model {

/** * @var bool */

protected $debugEnabled; /**

* @var string */ protected $table; /** * @var int */

protected $insertId; /** * @var string */

protected $lastError;

/*Returns the identifier of the last inserted photo * @return int*/

public function getInsertId() {

return $this->insertId; }

/** * @return string */

public function getLastError() {

return $this->lastError; }

/* Adds the photo to the database.

* @param int $attachmentId The identifier of the attachment to add

* @param int $folderId The identifier of the folder (Default: 0) * @return bool*/

public function add($attachmentId, $folderId = 0) {

$query = $this->getQueryBuilder()->insertInto($this->table) ->fields('attachment_id', 'folder_id')

->values((int)$attachmentId, (int)$folderId); if (!$this->db->query($query->build())) { $this->lastError = $this->db->last_error; return false;


(5)

}

$this->insertId = $this->db->insert_id; return true;

}

/*Update attachmentID for photo * @param $photoId * @param $attachmentId * @return false|int*/

public function updateAttachmentId($photoId,$attachmentId){ $query = $this->getQueryBuilder()->update($this->table) ->fields('attachment_id')

->values((int)$attachmentId) ->where('id','=',$photoId); return $this->db->query($query->build()); }

/**

* Returns the photo by the id * @param int $id The identifier of the photo * @return object $photo or NULL on failure */

public function getById($id) {

return $this->getBy('id', (int)$id); }

/*Returns the photo by the attachment id

* @param int $attachmentId The identifier of the attachment * @return object $photo or NULL on failure*/ public function getByAttachmentId($attachmentId) {

$query = $this->getQueryBuilder()->select('*') ->from($this->table)

->where('attachment_id', '=', (int)$attachmentId) ->orderBy('id')

->order('DESC') ;

if (null === $photo = $this->db->get_row($query->build(), ARRAY_A)) { return null;

}

return $this->extend($photo); }

/*Returns the array of the photos * @return array|null*/ public function getAll() {

$query = $this->getQueryBuilder()->select('*') ->from($this->table);

if ($photos = $this->db->get_results($query->build())) { foreach ($photos as $index => $photo) { $photos[$index] = $this->extend($photo); }

} return $photos; }

/** Deletes photo from the plugin by the attachment id * @param int $attachmentId The identifier of the attachment * @return bool TRUE on success, FALSE otherwise*/ public function deleteByAttachmentId($attachmentId) { $attachmentId = (int)$attachmentId; $photo = $this->getByAttachmentId($attachmentId); do_action('gg_delete_photo_attachment_id', $attachmentId); return $this->deleteBy('attachment_id', $attachmentId); }

/*Deletes photo from the plugin by the identifier * @param int $id The identifier of the photo * @return bool TRUE of success, FALSE otherwise*/ public function deleteById($id)

{

do_action('gg_delete_photo_id', $id); return $this->deleteBy('id', (int)$id); }

public function deleteByFolderId($id) {

return $this->deleteBy('folder_id', $id); }

}

6.

Source Code Class

sapAdminPage_2_0

<?php

/**Register, display and save a settings page in the WordPress admin menu. *@package Simple Admin Pages*/

class sapAdminPage_2_0 { public $title; public $menu_title;

public $description; // optional description for this page public $capability; // user permissions needed to edit this panel public $id; // id of this page

public $sections = array(); // array of sections to display on this page public $show_button = true; // whether or not to show the Save Changes button

public $setup_function = 'add_options_page'; // WP function to register the page

/**Initialize the page*/

public function __construct( $args ) { // Parse the values passed $this->parse_args( $args ); }

/**Parse the arguments passed in the construction and assign them to * internal variables.*/

private function parse_args( $args ) { foreach ( $args as $key => $val ) {

switch ( $key ) { case 'id' : $this->{$key} = esc_attr( $val );

default : $this->{$key} = $val;}

} }


(6)

public function modify_required_capability( $cap ) { return $this->capability;} /**Add the page to the appropriate menu slot.

* @note The default will be to post to the options page, but other classes

* should override this function.*/

public function add_admin_menu() {

call_user_func( $this->setup_function, $this->title, $this->menu_title, $this->capability, $this->id, array( $this, 'display_admin_menu' ) );}

/**Add a section to the page*/ public function add_section( $section ) {

if ( !$section ) { return;}

$this->sections[ $section->id ] = $section;} /**Register the settings and sanitization callbacks for each setting*/ public function register_admin_menu() {

foreach ( $this->sections as $section ) { $section->add_settings_section(); foreach ( $section->settings as $setting ) {

$setting->add_settings_field( $section->id );}

}

register_setting( $this->id, $this->id, array( $this, 'sanitize_callback' ) );

// Modify capability required to save the settings if it's not

// the default `manage_options`

if ( !empty( $this->capability ) && $this->capability !== 'manage_options') {

add_filter(

'option_page_capability_' . $this->id, array( $this, 'modify_required_capability' ) );} }

/**Loop through the settings and sanitize the data*/ public function sanitize_callback( $value ) {

if ( empty( $_POST['_wp_http_referer'] ) ) { return $value;}

// Get the current page/tab so we only update those settings

parse_str( $_POST['_wp_http_referer'], $referrer ); $current_page = $this->get_current_page( $referrer ); // Use a new empty value so only values for settings that were added are

// passed to the db. $new_value = array();

foreach ( $this->sections as $section ) { foreach ( $section->settings as $setting ) {

if ( $setting->tab == $current_page ) {

$setting_value = isset( $value[$setting->id] ) ? $value[$setting->id] : ''; $new_value[$setting->id] = $setting->sanitize_callback_wrapper( $setting_value );}

} }

// Pull in the existing values so we never overwrite values that were

// on a different tab

$old_value = get_option( $this->id ); if ( is_array( $old_value ) ) {

return array_merge( $old_value, $new_value );

} else {

return $new_value;} }

/**Get the current page/tab being viewed*/ public function get_current_page( $request ) {

if ( !empty( $request['tab'] ) ) {

return $request['tab']; } elseif ( !empty( $this->default_tab ) ) {

return $this->default_tab; } else {

return $this->id;} }

/**Output the settings passed to this page*/ public function display_admin_menu() {

if ( !$this->title && !count( $this->settings ) ) { return;}

if ( !current_user_can( $this->capability ) ) { wp_die( __('You do not have sufficient permissions to access this page.') );}

$current_page = $this->get_current_page( $_GET ); ?>

<div class="wrap"> <?php $this->display_page_title(); ?>

<?php if ( isset( $this->default_tab ) ) : ?>

<h2 class="nav-tab-wrapper">

<?php foreach( $this->sections as $section ) {

if ( isset( $section->is_tab ) && $section->is_tab === true ) { $tab_url = add_query_arg(

array(

'settings-updated' => false, 'tab' => $section->id) );

$active = $current_page == $section->id ? ' nav-tab-active' : ''; echo '<a href="' . esc_url( $tab_url ) . '" title="' . esc_attr( $section->title ) . '" class="nav-tab' . $active . '">';

echo esc_html( $section->title ); echo '</a>';}

} ?> </h2> <?php endif; ?> <form method="post" action="options.php">

<?php settings_fields( $this->id ); ?> <?php do_settings_sections( $current_page ); ?> <?php if ( $this->show_button ) { submit_button(); } ?>

</form> </div>

<?php} /**Output the title of the page*/ public function display_page_title() {

if ( empty( $this->title ) ) { return;} ?>

<h1><?php echo $this->title; ?></h1>

<?php }