Membangun Aplikasi Web dengan Metode OOP · Mulai bulan September sampai Oktober 1995, kode PHP...
Transcript of Membangun Aplikasi Web dengan Metode OOP · Mulai bulan September sampai Oktober 1995, kode PHP...
Membangun Aplikasi Web
dengan Metode OOP
Sanksi Pelanggaran Pasal 113 Undang-Undang Nomor 28 Tahun 2014 tentang Hak Cipta
1. Setiap Orang yang dengan tanpa hak melakukan pelanggaran hak ekonomi sebagaimana dimaksud dalam Pasal 9 ayat (1) huruf i untuk Penggunaan Secara Komersial dipidana dengan pidana penjara paling lama 1 (satu) tahun dan/atau pidana denda paling banyak Rp100.000.000 (seratus juta rupiah).
2. Setiap Orang yang dengan tanpa hak dan/atau tanpa izin Pencipta atau pemegang Hak Cipta melakukan pelanggaran hak ekonomi Pencipta sebagaimana dimaksud dalam Pasal 9 ayat (1) huruf c, huruf d, huruf f, dan/atau huruf h untuk Penggunaan Secara Komersial dipidana dengan pidana penjara paling lama 3 (tiga) tahun dan/atau pidana denda paling banyak Rp500.000.000,00 (lima ratus juta rupiah).
3. Setiap Orang yang dengan tanpa hak dan/atau tanpa izin Pencipta atau pemegang Hak Cipta melakukan pelanggaran hak ekonomi Pencipta sebagaimana dimaksud dalam Pasal 9 ayat (1) huruf a, huruf b, huruf e, dan/atau huruf g untuk Penggunaan Secara Komersial dipidana dengan pidana penjara paling lama 4 (empat) tahun dan/atau pidana denda paling banyak Rp1.000.000.000,00 (satu miliar rupiah).
4. Setiap Orang yang memenuhi unsur sebagaimana dimaksud pada ayat (3) yang dilakukan dalam bentuk pembajakan, dipidana dengan pidana penjara paling lama 10 (sepuluh) tahun dan/atau pidana denda paling banyak Rp4.000.000.000,00 (empat miliar rupiah).
Membangun Aplikasi Web
dengan Metode OOP
Anton Subagia
PENERBIT PT ELEX MEDIA KOMPUTINDO
Membangun Aplikasi Web dengan Metode OOP
Anton Subagia 2018 PT Elex Media Komputindo, Jakarta Hak cipta dilindungi undang-undang Diterbitkan pertama kali oleh Penerbit PT Elex Media Komputindo Kelompok Gramedia, Anggota IKAPI, Jakarta 2018
71xx
ISBN: 978-
Dilarang keras menerjemahkan, memfotokopi, atau memperbanyak sebagian atau seluruh isi buku ini tanpa izin tertulis dari penerbit.
Dicetak oleh Percetakan PT Gramedia, Jakarta
Isi di luar tanggung jawab percetakan
ix
DAFTAR ISI
Persembahan ................................................................................................. v Kata Pengantar .............................................................................................. vii Daftar Isi ......................................................................................................... ix Pembuka .......................................................................................................... xiii Instalasi Aplikasi ........................................................................................... xv
BAB. 1 Mengenal PHP, OOP, PDO, MVC dan AJAX ................. ....1
1.1 PHP ................................................................................................................ 1 1.1.1 Apa Itu PHP? ........................................................................................ 1 1.1.2 Perjalanan PHP .................................................................................... 2
1.2 OOP ............................................................................................................... 4 1.2.1 Pengertian OOP ................................................................................... 4 1.2.2 Prosedural VS OOP ............................................................................. 5
1.3 PDO ............................................................................................................... 7 1.3.1 Mengenal PDO ..................................................................................... 7 1.3.2 Keunggulan Menggunakan PDO ........................................................ 8
1.4 MVC .............................................................................................................. 8 1.4.1 Pengertian MVC ................................................................................... 8 1.4.2 Arsitektur MVC ................................................................................. 10 1.4.3 Keuntungan Menggunakan MVC .................................................... 10
1.5 AJAX ........................................................................................................... 11 1.5.1 Mengenal AJAX ................................................................................. 11 1.5.2 Keunggulan Menggunakan Ajax ...................................................... 12 1.5.3 Cara Kerja Ajax.................................................................................. 13
1.6 Mengenal Javascript ................................................................................... 14 1.6.1 Apa itu Javascript .............................................................................. 14 1.6.2 Kegunaan Javascript .......................................................................... 14 1.6.3 Menjalankan Javascript ..................................................................... 15
BAB. 2 Teori OOP dalam PHP ............................................ ....17
2.1 Class dan Objek .......................................................................................... 17 2.2 Property dan Method ................................................................................ 19 2.3 Cara Mengakses Objek .............................................................................. 20 2.4 Fungsi Variabel $this ................................................................................. 21 2.5 Argumen dan Method .............................................................................. 23
x
2.6 Constructor dan Destructor ...................................................................... 25 2.7 Inheritance (Pewarisan/Penurunan) ........................................................ 28 2.8 Encapsulation ............................................................................................. 29 2.9 Scope Resolution Operator ....................................................................... 32 2.10 Keyword Parent dan Self ......................................................................... 33 2.11 Static Property dan Static Method .......................................................... 35 2.12 Class Contant (Konstanta Class) ............................................................. 37 2.13 Final Class dan Final Method .................................................................. 38 2.14 Abstract Class dan Abstract Method ....................................................... 39 2.15 Object Interface ........................................................................................ 41 2.16 Polimorfisme ............................................................................................ 44 2.17 Autoload Class .......................................................................................... 45 2.18 Namespace ................................................................................................ 46 2.19 Override .................................................................................................... 48 2.20 Overloading .............................................................................................. 48 2.21 Contoh Program class .............................................................................. 49
BAB. 3 Mengenal Bootstrap ............................................... ....53
3.1 Mengenal Bootstrap .................................................................................. 53 3.2 Desain Halaman Web .............................................................................. 54 3.3 Desain Halaman Admin ........................................................................... 55 3.4 PopUp Modal ............................................................................................ 63 3.5 Desain Halaman Login ............................................................................. 64
BAB. 4 Pengenalan Dasar QUERY SQL ............................... ....67
4.1 Mengenal SQL ........................................................................................... 67 4.2 Menyiapkan Database ............................................................................... 70 4.3 Perintah Query Insert Data ...................................................................... 76 4.4 Perintah Query Delete Data ..................................................................... 77 4.5 Perintah Query Update Data .................................................................... 78 4.6 Menampilkan Data ................................................................................... 79 4.7 Operator Aritmatika ................................................................................. 80 4.8 Operator Where ........................................................................................ 83 4.9 Fungsi Agregate ......................................................................................... 83 4.10 Mencari Data dengan Between ............................................................... 88 4.11 Menggabungkan Tabel ........................................................................... 89 4.12 Order By .................................................................................................. 94
BAB. 5 Dasar AJAX dengan JQUERY ................................... ....97
5.1 Mengenal Ajax JQuery .............................................................................. 97 5.2 Menampilkan Data dengan Ajax .............................................................. 97 5.3 Mengirim Data Form dengan Ajax ....................................................... 100
1
1 Mengenal PHP, OOP, PDO,
MVC, dan AJAX
1.1 PHP
1.1.1 Apa Itu PHP?
PHP merupakan sebuah bahasa pemrograman yang berjalan dalam sebuah
web server (server side). PHP diciptakan oleh programmer Unix dan Perl,
bernama Rasmus Lerdoft pada bulan Agustus-September 1994. Pada awalnya,
Rasmus mencoba menciptakan sebuah script dalam website pribadinya untuk
memonitor siapa saja yang pernah mengunjungi website-nya.
Semula, PHP hanyalah sekumpulan script sederhana. Dalam perkembangan
selanjutnya, ditambahkan berbagai fitur pemrograman berorientasi objek.
Hal ini dimulai sejak PHP versi 4. Dengan lahirnya PHP 5, fitur-fitur
pemrograman berorientasi objek semakin mantap dan semakin cepat.
2
Dengan PHP 5, script yang digunakan konsep object-oriented akan lebih
cepat dan lebih efesien. Dengan demikian, dapat disimpulkan bahwa
pemrograman berorientasi objek telah dimulai pada PHP 5.
1.1.2 Perjalanan PHP
Pada awalnya, PHP merupakan kependekan dari Personal Home Page (situs
personal), selanjutnya Rasmus merilis kode sumber tersebut untuk umum
dan menamakannya PHP/FI pada sekitar tahun 1995, dan diperkenalkan
kepada beberapa programmer pemula dengan alasan bahasa yang digunakan
oleh PHP cukup sederhana dan mudah dipahami.
Selanjutnya, Rasmus merilis ulang PHP dengan bahasa C untuk
meningkatkan kecepatan aksesnya.
Mulai bulan September sampai Oktober 1995, kode PHP ditulis ulang dan
digabungkan menjadi PHP/FI. Baru di akhir tahun 1995 dirilis bagi umum
secara gratis. Mengapa Rasmus membagikan ke publik secara gratis? Ia
beranggapan bahwa apabila kode PHP ini berguna bagi dirinya, tentu akan
bermanfaat untuk orang lain. Sehingga, pada akhirnya akan kembali
bermanfaat bagi dirinya sendiri.
Pada November 1997, dirilis PHP/FI 2.0. Pada rilis ini, interpreter PHP sudah
diimplementasikan dalam program C. Disertakan juga modul-modul ekstensi
yang meningkatkan kemampuan PHP/FI secara signifikan.
Pada tahun 1997, sebuah perusahaan bernama Zend menulis ulang
interpreter PHP menjadi lebih bersih, lebih baik, dan lebih cepat. Kemudian
pada Juni 1998, perusahaan tersebut merilis interpreter baru untuk PHP dan
meresmikan rilis tersebut sebagai PHP 3.0 dan singkatan PHP dirubah
menjadi akronim berulang PHP, Hypertext Preprocessing.
Pada pertengahan tahun 1999, Zend merilis interpreter PHP baru dan rilis
tersebut dikenal dengan PHP 4.0. PHP 4.0 adalah versi PHP yang paling
banyak dipakai pada awal abad ke-21.
3
Versi ini banyak dipakai karena kemampuannya untuk membangun aplikasi
web kompleks, tetapi tetap memiliki kecepatan dan stabilitas yang tinggi.
Pada Juni 2004, Zend merilis PHP 5.0. Dalam versi ini, inti dari interpreter
PHP mengalami perubahan besar. Versi ini juga memasukan model
pemrograman berorientasi objek ke dalam PHP untuk menjawab
perkembangan bahasa pemrograman ke arah paradigma berorientasi objek.
Hingga pada penghunjung tahun 2013 dikutip dari salah satu forum, PHP
sudah merilis versi 5.6.2, tepatnya pada tanggal 19 November.
PHP.net melalui situs resminya telah mengumumkan versi terbaru dari PHP,
yakni PHP 7.0.0 yang secara resmi dirilis pada tanggal
3 Desember 2015. Ada banyak perubahan signifikan, seperti namespace di
PHP 5.3 dan trait di PHP 5.4, tetapi versi yang masih dipakai masih tetap 5.x
belum menjadi PHP 7. Lantas, ke manakah PHP 6? Di manakan dia berada?
Kenapa dari PHP 5.x langsung update ke PHP 7.x? Apakah para core
developer PHP salah tulis? Rasanya itu tidak mungkin. Lalu kenapa ?
Beberapa tahun yang lalu, rencana pengembangan PHP 6 dengan beberapa
perubahan terutama pada bagian dukungan terhadap unicode dengan
menggunakan encoding UTF-16. Presentasi dan publikasi sudah dilakukan di
banyak tempat. User sudah terlanjur mengenal PHP 6 sebagai PHP yang
mendukung unicode, meskipun belum secara resmi di rilis. Namun,
Implementasi pada level interpreter agar mendukung UTF-16 tidak mudah
dilakukan. Sudah 4 tahun berlalu tanpa ada perkembangan berarti, pada
akhirnya PHP 6 menyerah. Selang beberapa tahun, PHP 5.6 belum
mendukung unicode. Ketika kemudian versi mayor akan dirilis, timbulah
pertanyaan, apakah akan dinamai versi 6 atau versi 7.
4
Jika mengikuti kaidah penamaan yang normal, tentunya dari PHP 5
dilanjutkan ke PHP 6, karena pada kenyataanya PHP 6 pernah ada (meski
tidak pernah dirilis secara resmi), pernah menjadi perbincangan di mana-
mana dan menjadi referensi versi PHP yang mendukung UTF-16. Akhirnya,
setelah melalui sebuah proses diskusi, diputuskanlah PHP 7 sebagai nama
untuk versi Mayor.
1.2 OOP
1.2.1 Pengertian OOP
Pemrograman berorientasi objek atau object-oriented programming (OOP)
merupakan suatu pendekatan pemrograman menggunakan objek dan class.
Saat ini, konsep OOP sudah semakin berkembang. Hampir setiap perguruan
tinggi di dunia mengajarkan konsep OOP pada Mahasiswa/i-nya.
Pemrograman yang banyak dipakai dalam penerapan OOP adalah C++, Java,
Python, .Net, Ruby, Go, dan lain sebagainya.
Tujuan dari OOP adalah untuk memudahkan programmer dalam pembuatan
program dengan menggunakan konsep objek yang ada dalam kehidupan
sehari-hari. Jadi, setiap bagian permasalahan adalah objek, dan objek itu
sendiri merupakan gabungan dari beberapa objek yang lebih kecil.
Contoh objek dalam kehidupan sehari-hari, misalnya komputer. Komputer
merupakan objek yang terdiri dari objek-objek lain yang lebih kecil, berupa
motherboard, processor, vga card, ram, dan sebagainya. Objek-objek tersebut
akan saling berhubungan, berinteraksi, dan berkirim pesan satu sama lain.
Begitu juga dengan pemrograman OOP, permasalahan yang besar akan
dipecah menjadi permasalahan yang lebih kecil.
OOP bukanlah sekedar cara penulisan sintaks program yang berbeda, namun
lebih dari itu, OOP merupakan cara pandang dalam menganalisa system dan
permasalahan pemrograman. Dalam OOP, setiap bagian dari program adalah
object. Sebuah object mewakili suatu bagian program yang akan diselesaikan.
5
Sebuah objek pada OOP memiliki data atau yang disebut property yang
menjelaskan tentang sifat-sifat objek tersebut. Seperti sebuah komputer dapat
memiliki data merk, ukuran, dan spesifikasi lainnya, objek-objek yang ada di
dalamnya, seperti motherboard juga memiliki data berupa jumlah slot usb,
dioda yang terpasang, bridge, dan sebagainya.
Selain memiliki property, sebuah objek dalam OOP juga memiliki method
berupa fungsi yang dapat dipanggil untuk melakukan tindakan atau
mengubah nilai dari property yang ada di dalamnya. Seperti komputer dapat
melakukan tindakan merekam/menyimpan data, membuat program/animasi,
bermain game dan sebagainya, komputer juga dapat diganti shassis tower-nya
untuk mengubah ukuran, dimensi maupun warna (mengubah nilai
property).
1.2.2 Prosedural VS OOP
PHP bukanlah pemrograman yang murni berbasis objek, seperti Java
misalnya. OOP dalam PHP merupakan fitur tambahan yang mulai ada pada
PHP versi 4. Di dalam PHP, kita dapat membuat program dengan konsep
OOP maupun tidak. Pembuatan program tanpa konsep OOP dalam PHP
biasa disebut dengan pemrograman procedural.
Pemrograman procedural lebih cocok jika digunakan pada project aplikasi
dengan skala kecil. Namun, untuk pengerjaan aplikasi yang kompleks, apalagi
dikerjakan bersama team akan lebih baik jika menggunakan konsep OOP.
Membuat program dengan konsep Prosedural maupun OOP, masing-masing
memiliki kelebihan dan kekurangan.
Kelebihan Prosedural
Efektif digunakan untuk menyelesaikan masalah-masalah yang kecil dan
tidak terlalu rumit.
Memperhatikan urut-urutan/langkah-langkah perintah secara sistematis,
logis, dan tersusun berdasarkan algoritma yang sederhana.
6
Kekurangan Prosedural
Tidak cocok untuk menyelesaikan masalah yang rumit karena akan sulit
menemukan solusi permasalahan ketika terjadi error.
Kelebihan OOP
Data dan fungsi dikemas dalam class-class atau objek-objek.
Efektif digunakan untuk menyelesaikan masalah yang cukup besar
karena OOP terdiri dari class-class yang memisahkan setiap kode
program menjadi kelompok-kelompok kecil, sesuai dengan fungsinya.
Fungsi-fungsi algoritma yang terbagi menjadi beberapa class dapat
memudahkan kita dalam memahami program, begitu pula ketika ada
kesalahan program (bug/error) pada program, kita dapat lebih mudah
menemukan penyebab error-nya dibanding ketika menggunakan konsep
procedural.
Object dan class dapat digunakan berkali-kali, sehingga dapat
menghemat tempat (space/memory).
Setiap object dapat ditambah kemampuannya tanpa mengganggu object
lain.
Setiap object dapat dipakai dalam project yang lain tanpa perlu banyak
penyesuaian.
Kekurangan OOP
Programmer yang telah terbiasa membuat program dengan konsep
procedural sering merasa kesulitan ketika dihadapkan dengan OOP,
biasanya mereka akan merasa kebingungan dengan banyaknya istilah-
istilah OOP.
7
Sebagai penjelasan lebih detailnya, dapat digambarkan dalam table
perbandingan Prosedural dengan OOP.
Prosedural OOP
Fokus utama pada fungsi dan prosedur
yang beroperasi pada data
Menekankan pada data yang sedang
beroperasi
Program besar terbagi dalam
program/unit kecil yang disebut dengan
fungsi
Program terbagi ke dalam apa yang
disebut dengan object
Data dan fungsi diperlakukan sebagai
entitas terpisah
Data dan fungsi bersama diperlakukan
sebagai entitas terpisah
Data dapat bergerak bebas di sekitar
system dari satu fungsi lain
Data tersembunyi dan tidak dapat diakses
oleh fungsi eksternal
Data bersifat pasif Object-object dalam OOP aktif
Program desain dengan pendekatan
“Top Down”, yaitu tugas-tugas yang
kompleks dipecah menjadi bagian yang
lebih kecil, sampai sub-tugas tersebut
mudah diimplementasikan
Program desain pendekatan “Bottom
Up”, yaitu membuat prosedur-prosedur
untuk menyelesaikan tugas-tugas yang
sederhana, lalu menggabungkan
prosedur-prosedur tersebut dalam
prosedur yang kompleks sampai
fungsionalitas tercapai
Dapat kita tarik kesimpulan bahwa konsep OOP lebih baik dan lebih unggul
dari pada Prosedural.
1.3 PDO
1.3.1 Mengenal PDO
PDO (PHP Data Objects) adalah extension atau penambahan fitur dalam
PHP yang dirancang sebagai interface universal untuk pengaksesan berbagai
jenis database. Contohnya, jika kita menggunakan PDO dalam menulis kode
pemrograman lalu suatu saat website kita bertukar database dari MySQL ke
8
Oracle, maka kita tidak perlu mengubah semua kode program, cukup
mengubah cara pemanggilan PDO di awal program saja.
Berikut contoh cara pengaksesan database menggunakan PDO:
1. $pdo = new PDO (‘mysql:host=localhost; dbname=kuliah’, ‘root, ‘xxx’);
2. $statement = $pdo -> query (“select nim, nama_mhs from mahasiswa”);
3. $row = $statement -> fetch (PDO::FETCH_ASSOC);
Pada contoh di atas, dianggap bahwa user MySQL adalah root, passwordnya
adalah xxx, nama databasenya adalah kuliah dan nama tabelnya adalah
mahasiswa.
1.3.2 Keunggulan Menggunakan PDO
Ada beberapa keunggulan menggunakan PDO, di antaranya:
Support 12 jenis database dengan script yang sama. Hanya sedikit
perubahan query-nya, jenis database tersebut di antaranya MySql,
Oracle, Ms SQL Server, Porsgre SQL, dan lain sebagainya.
PDO membantu mencegah SQL Injection. Dengan PDO BindParam,
statement parameter ataupun inputan dari user secara otomatis difilter.
Sudah mendukung database transaction.
PDO lebih cepat bila dibandingkan dengan menggunakan fungsi yang
lain.
1.4 MVC
1.4.1 Pengertian MVC
MVC merupakan singkatan dari Model-View-Controller, merupakan sebuah
metode untuk membuat sebuah aplikasi dengan memisahkan antara data
(Model) dari tampilan (View) dan cara bagaimana memprosesnya
9
(Controller). Dengan kata lain, konsep MVC merupakan suatu metode dalam
pemrograman dengan memisahkan komponen utama yang membangun
aplikasi, yaitu memanipulasi data, user interface, dan juga bagian yang
mengontrol aplikasi.
Dalam implementasinya, tidak sedikit framework dalam aplikasi website
berbasis arsitektur MVC, misalnya CodeIgniter, Laravel, CakePHP, Yii,
Phalcon, Zend, PHPixie, Symfony, dan sebagainya.
Penjelasan lebih lengkap mengenai 3 komponen utama dalam konsep MVC
adalah sebagai berikut:
Model, merupakan bagian yang berhubungan langsung dengan database
untuk memanipulasi data (Insert, Update, Delete, maupun Search),
menangani validasi dari bagian Controller, namun tidak dapat langsung
berhubungan dengan bagian View.
View, merupakan bagian yang berisi skrip untuk menerima dan
mempresentasikan data kepada user. Bagian ini biasanya berupa
template HTML yang penampilannya diatur oleh Controller. View
berfungsi untuk menerima dan mempresentasikan data kepada user.
Bagian ini tidak memiliki akses langsung terhadap bagian Model.
Controller, merupakan bagian yang mengatur hubungan antara bagian
Model dan bagian View. Controller berfungsi untuk menerima request
dan data dari user kemudian menentukan apa yang akan diproses oleh
aplikasi.
Dalam metodenya, system dari MVC ini cukup sederhana, yakni
mengelompokan setiap bagian sesuai dengan fungsinya. Dapat disimpulkan
bahwa halaman yang di-request oleh user akan di-control oleh Controller,
lalu Controller akan memberikan sebuah tampilan kepada user berupa View,
dan untuk bagian transaksi data/database akan diatur oleh Model
10
1.4.2 Arsitektur MVC
Secara sederhana, arsitektur MVC dapat dijelaskan melalui gambar berikut:
Gambar 1.1 Konsep MVC
Pada gambar di atas, ketika user meminta (request) atau mengirim data
melalui URL website, maka Controller yang akan menangani request
tersebut. Jika dalam prosesnya membutuhkan data dari database, maka
Controller akan memberikan tugas tersebut kepada Model. Model akan
langsung berhubungan dengan Database untuk melakukan transaksi data
(memasukkan, mengambil, memperbaharui, atau menghapus) sesuai
permintaan dari user. Selanjutnya, data yang diterima dari Model akan
diserahkan pada View oleh Controller untuk ditampilkan pada halaman
website melalui browser dalam bentuk file HTML.
1.4.3 Keuntungan Menggunakan MVC
Dibandingkan dengan cara konvensional, pemrograman dengan teknik MVC
memiliki beberapa keuntungan, di antaranya adalah sebagai berikut:
Operasi data hanya dilakukan pada area yang ditentukan (Model) tidak
tersebar ke seluruh aplikasi, sehingga memudahkan dalam proses
pemeliharaan aplikasi.
Catata
Untuk m
Layanan
Grame
Jl. Palm
ext: 390
An
pr
stu
Jak
Pe
me
ked
ini
art
bil
Bil
yan
dj_
an:
melakukan pem
n Langsung PT
edia Direct
erah Barat No
Telemarketin
01/3902/32
nton Subagi
rogramming w
udy Sistem Info
karta.
nulis pernah
enjabat sebagai
duanya. Banyak
i, terutama di da
tikel di web mau
la dalam waktu s
la ada pertanyaa
ng membangun,
_anton16@yah
mesanan buku
T Elex Media
o. 29-37, Jak
g/CS: 021-5
292
TE P
ia adalah
web, alumnus S
ormasi di salah
bekerja di be
staff admin d
k hobby penulis
alam bidang Tek
upun membaca b
senggang.
an atau komenta
, penulis dapat d
hoo.com
u, hubungi
Komputindo:
karta 10270
3650110/11
ENTAPENU
seorang des
Sarjana dengan
satu perguruan
eberapa perusah
dan IT maupun
s yang dilakukan
khnologi Inform
buku, desain da
ar-komentar, kr
dihubungi melalu
11
309
ANG ULIS
sainer dan
n mengambil
tinggi swasta
haan dengan
n merangkap
n hingga saat
masi, membaca
an editing foto
itik dan saran
ui email: