Anda di halaman 1dari 166

Pendahuluan

Komputer pertama kali dibuat hanyalah sebagai mesin yang berdiri sendiri (stand
alone). Untuk melakukan perpindahan informasi dari satu komputer ke komputer
lainnya dibutuhkan tape, disk, disket dan lain-lain. Jalan untuk berbagi informasi
tersebut, dibuatlah koneksi. LAN, atau disebut juga Local Area Network, merupakan
jaringan komputer terkecil yang menghubungkan 2 atau lebih komputer untuk berbagi
informasi. Dengan konsep koneksi jaringan untuk membentuk jaringan dari jaringan
terciptalah internet. Internet itu sendiri merupakan singkatan dari Interconnected
Network of Networks.
Dalam era teknologi informasi dan komunikasi, setiap orang sangat membutuhkan
alat komunikasi yang dapat menjangkau berbagai informasi di belahan dunia. Dengan
kehadiran internet yang merupakan sebuah sistem komunikasi global yang
menghubungkan komputer-komputer dan jaringan komputer di seluruh dunia, maka
segala informasi yang diperlukan dapat dicari dengan mudah. Setiap orang dari
berbagai latar belakang yang berbeda dapat bertukar informasi tanpa perlu berinteraksi
secara fisik.
Internet ini dimanfaatkan oleh perusahaan, pemerintahan maupun perorangan
untuk membangun aplikasi yang disebut website. Website ini dipergunakan salah
satunya untuk tujuan memperkenalkan profil perusahaan atau pemerintahan. Melalui
web site tertentu, kita dapat berkirim email kepada seseorang di luar negeri tanpa
harus repot menulis di kertas, memasukkan ke dalam amplop dan mengirimnya lewat
kantor pos.

A. Sejarah Internet
Internet bukanlah satu fenomena baru. ARPAnet (US Defense Advanced Research
Projects Agency) atau Departemen Pertahanan Amerika pada tahun 1969 membuat
jaringan komputer yang tersebar untuk menghindarkan terjadinya informasi terpusat,
yang apabila terjadi perang dapat mudah dihancurkan. Jadi bila satu bagian dari
sambungan network terganggu dari serangan musuh, jalur yang melalui sambungan itu
secara otomatis dipindahkan ke sambungan lainnya. Setelah itu Internet digunakan
oleh kalangan akademis (UCLA) untuk keperluan penelitian dan pengembangan
teknologi. Dan baru setelah itu Pemerintah Amerika Serikat memberikan ijin ke arah
komersial pada awal tahun 1990.

Sejarah Perkembangan Internet:

1957 : Advanced Research Projects Agency (ARPA) dibentuk oleh Departement of


Defence (DoD) USA.
1959 : Len Kleinrock menulis paper tentang packet switching.
1967 : Disain awal dari ARPANET diterbitkan.
1969 : DoD menggelar pengembangan ARPANET
1970 : ARPANET mulai menggunakan Network Control Protocol
1972 : InterNetworking Working Group (INWG) dibentuk untuk mempromosikan
standar yang sudah disepakati bersama. Spesifikasi dari telnet, RFC 318,
diusulkan.
1973 : Ide ethernet dijabarkan dalam thesis PhD dari Bob Metcalfe. Spesifikasi
untuk File Transfer, RFC 454, diusulkan.
1
1974 : Disain dari TCP/IP dijabarkan secara rinci oleh Vint Cerf dan Bob Kahn
dalam "A Protocol for Packet Network Intercommunication".
1976 : UNIX-to-UNIX Copy (UUCP) dikembangan oleh Bell Labs.
1981 : BITNET mulai beroperasi.
1982 : TCP/IP menjadi protokol untuk ARPANET dan ini dispesifikasikan oleh
DoD.
1983 : BSD UNIX release 4.2 menggunakan TCP/IP.
1984 : Jumlah Internet hosts melewati batas 1000 host. Domain Name Service
(DNS) mulai lahir.
1986 : NSFNET dilahirkan dengan kecepatan backbone 56Kbps.
1987 : Jumlah Internet hosts melewati batas 10.000.
UUNET didirikan untuk memberikan akses komersial untuk Usenet dan
UUCP.
1988 : Sebuah "Internet Worm" berhasil melumpuhkan Internet, sekitar 6000
host terkena akibatnya.
NSFNET meningkatkan kecepatan backbone menjadi 1,544 Mbps (T1).
1989 : Jumlah Internet hosts melewati batas 100.000. Tim Berners-Lee dari
CERN mensirkulasikan porposalnya yang berjudul "Information
Management: A Proposal".
1990 : DoD menghentikan ARPANET.
Tim Berners-Lee mensirkulasikan proposal World Wide Web (WWW).
Dikembangkan sebuat program WWW, sebuah WYSIWYG browser dan
editor.
1991 : Brewster Kahle (Thinking Machines) mengembangan Wide Area
Information System (WAIS). Paul Lindner dan Mark McCahill (University of
Minnesota) meluncurkan Gopher. Phillip Zimmerman meluncurkan Pretty
Good Privacy (PGP). CERN meluncurkan library WWW.
1992 : Jumlah Internet hosts melampaui 1.000.000. University of Nevada
mengeluarkan sistem Veronica. Sebuah WWW browser yang bernama
Viola diluncurkan oleh Pei Wei dan didistribusikan bersama CERN WWW.
1993 : NSF membuat InterNIC untuk menjalankan Internet servis seperti
pendaftaran domain.
Versi pertama dari Mosaic (untuk X Window) yang dikembangkan oleh
Marc Andreesen dikeluarkan oleh NCSA. White House online.
National Information Infrastructure Act lolos dan pemerintah Amerika
Serikat mulai lebih serius dalam bidang Web.
1994 : Pizza hut online, merupakan contoh pertama dari aplikasi komerisal
Internet.
Spam mail menjadi kasus besar setelah sebuah lembaga hukum yang
bernama Canter & Siegel menyebarkan mail ke seluruh dunia tentang
servis untuk mendapatkan "green card". First Virtual menjalankan
"CyberBank" yang pertama.
1995 : Compuserve, America Online, dan Prodiy mulai memberikan servis akses
ke Internet. Perusahaan Marc Andreesen, Netscape Communication
Corporation, menjadi publik dan menjadi nomor 3 tertinggi untuk harga
Initial Public Offering (IPO) share di NASDAQ. NFS tidak lagi
menggratiskan pendaftaran domain. Domain mulai membayar $50/tahun.

2
B. Konsep Dasar Internet
Internet yang merupakan singkatan dari Interconnected Network adalah sebuah
sistem komunikasi global yang menghubungkan komputer-komputer dan jaringan-
jaringan komputer di seluruh dunia. Setiap komputer dan jaringan terhubung secara
langsung maupun tidak langsung ke beberapa jalur utama yang disebut internet
backbone dan dibedakan satu dengan yang lainnya menggunakan unique name yang
biasa disebut dengan alamat IP 32 bit. Contoh: 202.155.4.230.
Komputer dan jaringan dengan berbagai platform yang mempunyai perbedaan
dan ciri khas masing-masing (Unix, Linux, Windows, Mac, dan lain-lain) bertukar
informasi dengan sebuah protokol standar yang dikenal dengan nama TCP/IP
(Transmission Control Protocol / Internet Protocol). TCP/IP tersusun atas 4 layer (
network access, internet, host-to-host transport dan application ) yang memiliki
protokolnya sendiri-sendiri.
Bila anda mempunyai komputer minimal prosessor 486, Windows 95, Modem, dan
line telepon, maka anda bisa bergabung dengan ribuan juta komputer lain di seluruh
dunia dan mengakses informasi-informasi di internet.

A. HTTP (Hypertext Transfer Protocol)


HyperText Transfer Protocol (HTTP) merupakan protokol yang digunakan untuk
mentransfer dokumen dalam www. HTTP mendefinisikan bagaimana suatu pesan bisa
diformat dan dikirimkan dari server ke client. HTTP juga mengatur aksi-aksi apa saja
yang harus dilakukan oleh web server dan juga web browser sebagai respon atas
permintaan-permintaan yang lewat dalam protokol http.
Sebagai contoh, ketika kita mengetikkan suatu alamat web atau URL pada web
browser, maka sebenarnya web browser akan mengirimkan permintaan http ke web
server. Web server kemudian akan menerima permintaan ini dan melakukan proses
sesuai dengan yang diminta oleh web browser (misalnya akses ke database, file, e-mail
dan lain sebagainya). Hasil proses tadi akan dikirimkan kembali ke web browser untuk
ditampilkan kepada pengguna.
HTTP bekerja diatas TCP (Transmission Control Protocol) yang menjamin
sampainya data di tujuan dalam urutan yang benar. Bila suatu kesalahan terjadi selama
proses pengiriman, pihak pengirim akan mendapat pemberitahuan bahwa telah terjadi
sebuah masalah jaringan dan perlu mengirimkan permintaan ulang.

B. URL (Uniform Resource Locator)


Uniform Resource Locator (URL) merupakan alamat dari sebuah resource yang
dapat diakses di internet. Resource yang dimaksud disini bisa berupa berkas halaman
web, video, mp3, dll.
URL memiliki 3 bagian:
 Protokol (http:// atau https://)
 Alamat Server (lokasi data tersimpan)
 File Path (folder dan atau nama file)
Misalnya bila ada URL : http://www.unived.ac.id/foto/pakbos.jpg
Dapat diterjemahkan sebagai berikut :
http://  adalah protokol
www.unived.ac.id  adalah alamat server
/foto/pakbos.jpg  adalah folder dan nama file

3
C. DNS (Domain Name System)
Domain Name System (DNS) merupakan versi teks dari ip address. Dalam dunia
jaringan komputer, komputer berkomunikasi satu sama lain dengan mengenali ip
address-nya. Namun bagi manusia tidak mungkin menghafalkan ip address tersebut,
manusia lebih mudah menghafalkan kata-kata seperti www.yahoo.com,
www.google.com, atau www.facebook.com. DNS berfungsi untuk mengkonversi nama
yang mudah diingat menjadi ip address dari komputer yang ingin dihubungi.

D. WWW (World Wide Web)


World Wide Web (www) atau yeng lebih dikenal dengan sebutan web, merupakan
salah satu layanan yang didapat oleh para pemakai komputer yang terhubung ke
internet. Web adalah ruang informasi dengan menggunakan teknologi hyperlink untuk
menghubungkan tiap dokumen. Dengan teknologi ini pemakai dituntun untuk
menemukan informasi dengan mengikuti tautan (link) yang disediakan dalam halaman
web yang ditampilkan lewat web browser.
Internet identik dengan web, karena kepopuleran web sebagai interface pada
layanan-layanan yang ada di Internet. Dimana yang pada awalnya web hanya sebagai
penyedia informasi kini digunakan juga untuk berkomunikasi surat elektronik (email),
chatting sampai dengan video conference.

Bagaimana WWW Bekerja ?


 Informasi web disimpan dalam dokumen yang disebut dengan halaman-halaman
web (web pages)
 Web page adalah berkas-berkas yang disimpan dalam komputer yang disebut
dengan server-server web (web server)
 Komputer-komputer yang mengakses web page disebut sebagai web client
 Web client menampilkan web page dengan menggunakan program yang disebut
dengan web browser

Perhatikan ilustrasi di bawah ini :

Gambar 1. Ilustrasi Client/Server dalam Web

E. Tools Client/Server dalam Web


1. Browser (Web Browser)
Browser merupakan tool yang berada di sisi client. Untuk mengakses web,
anda memerlukan suatu program yang disebut Web Browser. Browser
merupakan suatu program yang dirancang untuk mengambil informasi-informasi
dari suatu server komputer pada jaringan internet. Informasi-informasi ini

4
biasanya dikemas dalam page-page, dimana setiap page bisa memiliki beberapa
link yang menghubungkan web page tersebut ke sumber informasi lainnya.
Pertama kali munculnya www, browser hanya mampu menampilkan
inforamsi dalam bentuk teks. Lynx merupakan salah satu contoh browser teks.
Tahun 1993, NCSA membuat browser Mosaic yang memiliki kemampuan lebih
baik dan dapat menampilkan gambar. Sejak kemunculan NCSA Mosaic, www
mulai berkembang dengan pesat.Perkembangan ini menjadi jauh lebih cepat lagi
setelah muncul browser Netscape Navigator dari Netscape Communication.
Netscape memiliki kecepatan jauh lebih bagus daripada Mosaic dalam
menampilkan informasi baik teks maupun gambar.
Kemudian dunia browser semakin semarak setelah Microsoft mengeluarkan
browser Internet Explorer.

2. Web Server
Web Server merupakan tool yang berada di sisi server yang akan
memproses permintaan data dari web browser. Ada beberapa jenis web server
yang banyak digunakan sekarang ini, antara lain : Internet Information Server
5.0 (IIS 5.0) yang berjalan pada Windows 2000, Personal Web Server 4.0 (PWS
4.0) yang berjalan pada Windows ‟98, Apache Web Server
(http://httpd.apache.org) yang merupakan web server gratis yang mendukung
PHP.
Seiring kemajuan dunia web, sekarang banyak sekali paket-paket server
yang disediakan dan sangat mudah untuk digunakan, diantaranya : XAMPP,
WAMP, AppServ, dan masih banyak lagi yang lainnya.

3. Database Server
Database Server merupakan tool yang berada di sisi server yang
merupakan perangkat lunak sistem manajemen database (Database
Management System – DBMS), berfungsi untuk pengelolaan data pada sebuah
web site. Beberapa DBMS yang dapat digunakan untuk membangun database
antara lain : Oracle, MySQL, Ms. SQL Server dan Ms. Access.

F. Jenis-Jenis Website
 Web Statis : dibentuk menggunakan client side scripting. Update dilakukan secara
manual dengan melakukan perubahan terhadap script halaman tersebut.
 Web Dinamis : dibentuk menggunakan aplikasi tambahan (server side scripting dan
database) sehingga data dapat diupdate tanpa harus mengubah script, namun
cukup dengan mengubah data yang ada dalam database.

G. Bahasa Pemrograman Web


1. Client Side Scripting
 HTML
 Javascript
 CSS
2. Server Side Scripting
 PHP
 ASP
 Perl

5
Pertemuan 2 Web Programming
2017 Lukman Fakih Lidinillah
PHP

PENULISAN
Penlusian adalah hal pertama yang harus dipahami dalam bahasa pemrograman, dalam bahasa
pemrograman PHP terdapat aturan-aturan penulisan. Aturan tersebut dapat dilihat dibawah ini
:
1. PHP Tags / Tag PHP
a. Standart Tags

b. Short Tags

Ket : terkadang saat menggunakan short tags, PHP tidak membacanya sebagai
tags, solusinya adalah kita harus membuka konfigurasi php dan mengaktifkan
fungsi short_open_tags, agar short tags bisa dipakai.

2. Embedded Script
Embedded Script disini masksudnya, penulisan kode php ada di dalam tag HTML, dimana
tag php di embed didalam tag HTML

Contoh:

3. Non Embedded Script


Sedangkan Non Embedded Script adalah sebaliknya, yaitu script / tags html di embed
dalam PHP, Contoh :

1
Pertemuan 2 Web Programming
2017 Lukman Fakih Lidinillah
PHP

4. Comment
Komentar merupakan bagian penting didalam program. Sangat berguna bagi pemrogram
atau pembaca program dalam memahami isi program, komentar biasanya berisi
keterangan-keterangan penjelas.
Ada 3 macam komentar dalam PHP.
1. Menggunakan dua tanda Slash (//)
2. Menggunakan tanda (/* */)
3. Menggunakan tanda Pagar (#)
Contoh :

5. Output
Output disini digunkan untuk menampilkan hasil pada layar browser, ada beberapa cara
untuk menampilkan pada browser yaitu : echo, print, printf.

2
Pertemuan 2 Web Programming
2017 Lukman Fakih Lidinillah
PHP

TIPE DATA
Selain kita harus mengetahui tatacara penulisan, juga harus memahami tipe data dalam bahasa
pemrograman tertentu. Dalam php ada 4 tipe data saklar, 4 tipe data saklar tersebut dapat dilihat
dibawah ini :
1. 4 Tipe data Saklar
a. Boolean
Tipe data boolean adalah tipe data yang hanya mempunya dua kemungkinan,
yaitu true dan false;
http://php.net/manual/en/language.types.boolean.php
Contoh :

b. Integer
Tipe data integer adalah tipe data dalam PHP yang menampung data-data decimal
baik negatif ataupun positif, selain itu juga dapat menampung bilangan octal dan
hexadecimal. Untuk selengkapnya dapat dibaca pada site resmi
http://php.net/manual/en/language.types.integer.php
Berikut contoh dari tipe data integer di PHP:

c. Float / double
Floating Point disebut juga dengan “floats”, “doubles”, atau “bilangan real”.
Untuk menulis floating point dalam PHP dapat mengikuti cara sebagai berikut :
http://php.net/manual/en/language.types.float.php

d. String
String adalah rangkaian karakter, yang mana tiap karakter memiliki ukuran byte
yang sama. PHP satu set hanya mendukung 256 karakter dan tidak menawarkan
dukungan unicode. Lihat sumber
http://php.net/manual/en/language.types.string.php.

Penulisan String dalam PHP ada 4 cara, seperti contoh dibawah ini :
1) single quoted ( kutip satu )

3
Pertemuan 2 Web Programming
2017 Lukman Fakih Lidinillah
PHP

2) double quoted ( kutip dua )

Ket :
Jika string tertutup dalam tanda kutip ganda ("), PHP akan menafsirkan
escape sequence lebih untuk karakter khusus:

Sequence Meaning
\n linefeed / Pindah Baris (LF or 0x0A (10) in ASCII)
\r carriage return (CR or 0x0D (13) in ASCII)
\t horizontal tab (HT or 0x09 (9) in ASCII)
\v vertical tab (VT or 0x0B (11) in ASCII) (since PHP 5.2.5)
\e escape (ESC or 0x1B (27) in ASCII) (since PHP 5.4.4)
\f form feed (FF or 0x0C (12) in ASCII) (since PHP 5.2.5)
\\ Backslash
\$ dollar sign
\" double-quote
\[0-7]{1,3} the sequence of characters matching the regular expression is
a character in octal notation
\x[0-9A- the sequence of characters matching the regular expression is
Fa-f]{1,2} a character in hexadecimal notation

Contoh :

4
Pertemuan 2 Web Programming
2017 Lukman Fakih Lidinillah
PHP

3) heredoc syntax

Fitur ini digunakan untuk membuat tipe data string yang dapat berisi
beberapa baris kalimat. Dibandingkan dengan menggunakan single
quote dan double quote, pembuatan string dengan heredoc tidak terlalu
sering digunakan.

4) nowdoc syntax (Sejak PHP 5.3.0)

itur ini hampir sama dengan Heredoc, namun dengan


pengecualian: karakter khusus dan variabel tidak akan diproses oleh PHP,
atau mirip dengan single quoted string.

2. Gabungan
a. Array
Tipe data array adalah tipe data yang dapat menyimpan / menampung banyak
data dalam satu variable. Biasanya dalam pemrograman lain data dalam array
haruslah sejenis, berbeda dengan PHP, kita bebas menyimpan data dengan tipe
apa saja.
Misalkan :

5
Pertemuan 2 Web Programming
2017 Lukman Fakih Lidinillah
PHP

b. Objek
Tipe data object dibuat dengan tujuan agar para programmer terbiasa dengan
OOP. Tipe data object bisa berupa bilangan, variabel atau fungsi. Data ini dapat
dimasukkan ke dalam kode program sehingga meringkas beberapa fungsi dan
memperkecil ukuran file.
3. Resource
Resource adalah variable khusus yang diciptakan menggunakan fungsi-fungsi, dan fungsi
tersebut merujuk atau mereferensi pada resouce external seperti : mysql_connect() dll.
Lihat sumber resource di : http://php.net/manual/en/resource.php

4. NULL
NULL adalah Tipe Data yang tidak memuat apapun. Setiap Variabel yang diset menjadi
Tipe Data NULL ini akan menjadikan Variabel tersebut kosong, seperti dalam penggunaan
fungsi unset(). Cara untuk menset Variabel menjadi NULL adalah dengan memasukan nilai
NULL pada variabel yang dimaksud seperti pada.
Sumber : http://php.net/manual/en/language.types.null.php

6
Pertemuan 2 Web Programming
2017 Lukman Fakih Lidinillah
PHP

VARIABLE
1. BASIC
Variabel di PHP diwakili oleh tanda dolar lalu diikuti dengan nama variabel. Nama
variabel disini adalah case-sensitive.
Sedangkan nama variabel mengikuti aturan yang sama seperti label lain di PHP.
Sebuah nama variabel yang valid dimulai dengan huruf atau underscore, diikuti oleh
sejumlah huruf, angka, atau garis bawah. Sebagai ekspresi reguler, itu akan
dinyatakan demikian: "[a-zA-Z_ \ x7f- \ xff] [a-zA-Z0-9_ \ x7f- \ xff] * '

Contoh :

2. Predefined Variables
PHP menyediakan sejumlah besar variabel yang telah ditetapkan untuk setiap script
yang berjalan. Banyak variabel ini, bagaimanapun, tidak dapat sepenuhnya
didokumentasikan karena variable tersebut tergantung pada server yang sedang
berjalan, versi dan setup server, dan faktor lainnya. Variable yang dimaksud bisa
dilihat dibawah ini :

$GLOBALS — References all variables available in global scope


$_SERVER — Server and execution environment information
$_GET — HTTP GET variables
$_POST — HTTP POST variables
$_FILES — HTTP File Upload variables
$_REQUEST — HTTP Request variables
$_SESSION — Session variables
$_ENV — Environment variables
$_COOKIE — HTTP Cookies
$php_errormsg — The previous error message
$HTTP_RAW_POST_DATA — Raw POST data
$http_response_header — HTTP response headers
$argc — The number of arguments passed to script
$argv — Array of arguments passed to script

3. Variable Scope, Global Variable, Static Variable


a. Variabel Scope (atau ruang lingkup variabel) adalah jangkauan kode program
dimana perintah program masih bisa mengakses sebuah variabel.
Jika kita mendefenisikan sebuah variabel pada satu file PHP, maka variabel
tersebut dapat diakses oleh seluruh kode program pada halaman yang sama.
Namun jika variabel tersebut di defenisikan di dalam sebuah fungsi, variabel itu
belum tentu bisa diakses dari luar fungsi tersebut. Hal inilah yang dimaksud
dengan Variabel Scope.
Variabel yang didefenisikan di dalam sebuah fungsi, secara default tidak dapat
diakses oleh kode program di luar fungsi tersebut. Dan begitu juga sebaliknya,
variabel yang didefenisikan di luar fungsi, tidak bisa diakses dari dalam fungsi.

7
Pertemuan 2 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Contoh a :

Contoh b :

b. Global Variable
Jika kita tetap ingin menggunakan variabel yang didefenisikan di luar fungsi dan
sebaliknya, PHP memperbolehkan hal tersebut dengan menambahkan sebuah
kata kunci ‘global’ sebelum pendefenisian nama variabel.

Contoh :

c. Static Variable
Static Variabel, atau variabel statis adalah jenis variabel yang mempertahankan
nilainya pada setiap pemanggilan fungsi. Untuk variabel normal, nilai dari variabel
tersebut akan secara otomatis dihapus pada saat fungsi selesai dijalankan, dan
akan dibuat ulang pada saat fungsi dipanggil.
Namun jika sebuah variabel dinyatakan sebagai static variabel, maka nilai variabel
tersebut akan tetap dipertahankan walaupun fungsi telah selesai dijalankan.

8
Pertemuan 2 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Biasanya fungsi ini dimanfaatkan jika kita ingin menghitung berapa kali sebuah
fungsi dipanggil.

Contoh :

4. Variable Variable
Contoh :

5. Variable From External Source


Di pakai ketika sebuah form dikirim ke script PHP,

9
Pertemuan 3 Web Programming
2017 Lukman Fakih Lidinillah
PHP

KONSTANTA
Dalam bahasa pemograman, Konstanta (constant) adalah suatu lokasi penyimpanan (dalam
memory) yang berisikan nilai yang sifatnya tetap dan tidak bisa diubah sepanjang program
berjalan.
Berbeda dengan variabel yang isi/nilainya dapat diubah bahkan dihapus selama program
berjalan, sebuah konstanta jika telah diberikan nilai, tidak dapat diubah lagi dalam kode
program. Hal ini seseuai dengan namanya, yakni konstant.
Ada dua cara untuk mendefinisikan konstanta :
1. Menggunakan const.
2. Menggunakan define.
Contoh Penggunaan :

Catatan : Perbedaan pendefenisian konstanta menggunakan kata kunci const dan


fungsi define:

Pembuatan konstanta dengan keyword const hanya dapat digunakan pada top-level scope,
yakni harus dalam lingkungan global PHP. Sehingga kita tidak bisa menggunakanconst di
dalam function, loop, atau kondisi if.
Apabila anda membutuhkan konstanta di dalam fungsi, maka harus
menggunakankeyword define.
Catatan 2 :
a. Konstanta Bersifat case sensitive
b. Nilai konstanta tidak dapat dirubah
c. Konstanta hanya dapat berisi tipe data tertentu saja
Selain apa yang sudah dijelaskan diatas, PHP menyediakan predefined constanta / konstanta
yang sudah ditetapkan. Apa saja? Bisa dilihat daftarnya dibawah ini :

Name Description
__LINE__ The current line number of the file.

1
Pertemuan 3 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Name Description
__FILE__ The full path and filename of the file with symlinks resolved. If used inside an
include, the name of the included file is returned.
__DIR__ The directory of the file. If used inside an include, the directory of the included file is
returned. This is equivalent to dirname(__FILE__). This directory name does not
have a trailing slash unless it is the root directory.
__FUNCTION__ The function name.
__CLASS__ The class name. The class name includes the namespace it was declared in
(e.g. Foo\Bar). Note that as of PHP 5.4 __CLASS__ works also in traits. When used in
a trait method, __CLASS__ is the name of the class the trait is used in.
__TRAIT__ The trait name. The trait name includes the namespace it was declared in
(e.g. Foo\Bar).
__METHOD__ The class method name.
__NAMESPACE__ The name of the current namespace.

2
Pertemuan 3 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Operators
1. Arithmetic Operators ( Aritmatika )
Masih ingatkah aritmatika dari sekolah? Operator Aritmatika ini sama halnya dengan
itu, yang terdiri dari operator penambahan, pengurangan, perkalian, pembagian,
modulus, plus, dan minus.

Example Name Result


-$a Negatif Nilai Negatif dari $a.
+$a Positif Nilai Positif dari $a
$a + $b Penambahan Total dari $a dan $b.
$a - $b Pengurangan Selisih dari $a dan $b.
$a * $b Perkalian Hasil kali dari $a dan $b.
$a / $b Division / Pembagian Hasil bagi dari $a dan $b.
$a % $b Modulus / Sisa hasil bagi Sisa dari $a dibagi dengan $b.
$a ** $b Exponentiation Result of raising $a to the $b'th power. Introduced in PHP 5.6.
Contoh :

2. Asssignment Operators ( Penugasan )


Simbol Operator penugasan adalah "=". Kecenderungan pertama Anda mungkin
berpikir ini sebagai "sama dengan". Padahal Tidak.
Operator Penugasan ini diartikan operand ( nilai ) sebelah kiri akan diatur oleh
operand kanan. Misalkan $a=10 maka nilai dari $a adalah 10 (artinya nilai dari $a
diatur oleh nilai di sebelah kananya yaitu 10, maka $a akan menjadi 10).

3
Pertemuan 3 Web Programming
2017 Lukman Fakih Lidinillah
PHP

3. Comparison Operators ( Perbandingan )


Sesuai dengan namanya, operator perbandingan membandingkan nilai dari 2
operand. Hasilnya selalu salah satu dari TRUE atau FALSE. Hasil perbandingan akan
bernilai TRUE jika kondisi perbandingan tersebut benar, atau FALSE jika kondisinya
salah.
Operand untuk operator perbandingan ini bisa berupa tipe data angka (integer atau
float), maupun bertipe string. Operator perbandingan akan memeriksa nilai dan
(untuk beberapa operator) juga tipe data dari operand.
Jenis-jenis dari operator perbandingan dalam PHP dapat dilihat dari tabel dibawah ini:

Example Name Result


$a == $b Sama dengan TRUE jika $a sama dengan $b (tanpa melihat type data).

$a === $b Identik TRUE jika $a sama dengan $b, dan memiliki tipe data yang
sama.
$a != $b Tidak Sama dengan TRUE jika $a tidak sama dengan $b (tanpa melihat tipe data).

$a <> $b Tidak Sama dengan TRUE jika $a tidak sama dengan$b (tanpa melihat tipe data).

$a !== $b Tidak Identik TRUE jika $a tidak sama dengan $b, dan memiliki tipe data
yang tidak sama.
$a < $b Kurang dari TRUE jika $a kurang dari $b.

$a > $b Lebih dari TRUE jika $a lebih dari $b.

$a <= $b Kurang atau Sama dengan TRUE jika $a kurang dari atau sama dengan $b.

$a >= $b Lebih atau Sama dengan TRUE jika $a lebih dari atau sama dengan $b.

4
Pertemuan 3 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Contoh :

4. Error Control Operators


Bila konfigurasi di PHP anda diset untuk menampilkan error secara otomatis, maka
setiap kali ada kesalahan yang terjadi pada kode, PHP akan menampilkan pesan error
tersebut ke dalam browser. Hal ini dapat menjadi celah bagi peretas yang berniat
buruk. Maka dari itu ada kalanya diperlukan cara untuk menyembunyikan pesan error
tersebut, salah satunya adalah dengan operator ini. Operator pengontrol kesalahan
ini menggunakan tanda/simbol ‘@’.
contoh:
@include("includes/$page.php");

5. Incrementing / Decrementing Operators ( Kenaikan / Penurunan )


Operator ini berfungsi untuk menambah/mengurangi suatu variabel secara
berurutan.
See More Tables.

CONTOH NAMA KETERANGAN

++$a Pre-Increment Naikkan nilai $a dengan 1, kemudian kembalikan nilai $a

$a++ Post-Increment Kembalikan nilai $a, lalu naikkan $a dengan 1

- -$a Pre-Decrement Turunkan nilai $a dengan 1, kemudian kemablikan nilai $a

$a- - Post-Decrement Kembalikan nilai $a, lalu turunkan $a dengan 1

5
Pertemuan 3 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Contoh :

6. Logical Operators (Operator Logika)


Operator logika digunakan untuk melakukan operasi logis dalam suatu bahasa
pemrograman. Lihat Table berikut :

SIMBOL NAMA CONTOH KETERANGAN

and And $a and $b Benar, bila $a dan $b sama-sama true

or Or $a or $b Benar, bila salah satu dari $a atau $b bernilai true

xor Xor $a xor $b Benar, bila salah satu dari $a atau $b bernilai true tapi tidak keduanya

&& And $a && $b Benar, bila kedua dari $a dan $b sama-sama bernilai true

|| Or $a || $b Benar, bila salah satu dari $a atau $b bernilai true

! Not !$a Benar, bila $a bernilai false

6
Pertemuan 3 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Contoh :

7. String Operators
Operator string digunakan untuk melakukan operasi pada tipe data string.
Operator string bisa dilihat pada tabel:

SIMBOL NAMA CONTOH KETERANGAN

. Concatination $a . $b Menggabungkan string $a dengan string $b

.= Concatination Assignment $a .= $b Membubuhkan $b ke dalam $a

Contoh :

8. Array Operators
Operator array hampir sama dengan operator pembanding, bedanya operator array
digunakan untuk melakukan operasi terhadap tipe data array. Perhatikan tabel:

SIMBOL NAMA CONTOH KETERANGAN

+ Union / $a + $b Memadukan array $a dengan array $b


Perpaduan

== Sama dengan $a == $b Benar, bila $a dan $b memiliki key/value yang sama

=== Identik $a === Benar, bila $a dan $b memiliki key/value yang sama, urutan yang
$b sama, dan bertipe data sama pula

!= Tidak Sama $a != $b Benar, bila $a tidak sama dengan $b


dengan

7
Pertemuan 3 Web Programming
2017 Lukman Fakih Lidinillah
PHP

SIMBOL NAMA CONTOH KETERANGAN

<> Tidak Sama $a <> $b Benar, bila $a tidak sama dengan $b


dengan

!== Tidak identik $a !== $b Benar, bila $a dan $b tidak memiliki key/value yang sama, atau tidak
memiliki urutan yang sama, atau bertipe data berbeda

Contoh :

9. Type Operators
Instanceof digunakan untuk menentukan apakah variabel PHP adalah obyek
instantiated dari kelas tertentu:

8
Pertemuan 3 Web Programming
2017 Lukman Fakih Lidinillah
PHP

STRUKTUR KONTROL
Script PHP dibangun dari serangkaian pernyataan (Statement). Sebuah pernyataan dapat
menjadi tugas, panggilan fungsi, loop, pernyataan kondisional atau bahkan pernyataan bahwa
tidak melakukan apapun (pernyataan kosong). Pernyataan biasanya diakhiri dengan titik
koma. Selain itu, pernyataan dapat dikelompokkan ke dalam sebuah pernyataan kelompok
dengan mengenkapsulasi sekelompok pernyataan dengan kurung kurawal. Sebuah
pernyataan kelompok adalah pernyataan itu sendiri juga. Berbagai jenis pernyataan akan
diuraikan dalam bab ini.
1. if
Konstruksi "if" adalah salah satu fitur yang paling penting dari banyak bahasa
pemrograman, termasuk juga dengan PHP. Hal ini memungkinkan untuk penggalan
kode secara kondisional. PHP mimiliki fitur struktur if yang mirip dengan C:
Contoh :

Contoh 2 :

2. else
Seringkali kita ingin mengeksekusi seubahi pernyataan if pada suatu kondisi tertentu
terpenuhi, dan pernyataan if yang berbeda kondisi tidak terpenuhi. Maka diperlukan
else.
Contoh :

9
Pertemuan 3 Web Programming
2017 Lukman Fakih Lidinillah
PHP

3. elseif / else if
else if, seperti namanya, adalah kombinasi dari if dan else. Elseif ini sama halnya
seperti else, akan tetapi lebih diperluas lagi. Else if ini digunakan untuk mengeksekusi
statement yang berbeda beda. Jika if dengan kondisi awal salah maka beralih pada
kondisi yang kedua, begitu seterusnya.

Contoh :

4. Sintak alternatif untuk struktur kontrol


PHP menawarkan sintak alternatif untuk beberapa struktur kontrol; yaitu, if, while,
for, foreach, dan switch. Dalam setiap kasus, bentuk dasar dari sintaks alternatif
adalah mengubah kurung kurawa “{“ pembuka ke tanda titik dua (:) dan kurung
kurawa pnutup diganti endif;, endwhile;, endfor;, endforeach;, atau endswitch;, pada
masing-masing struktur kontrol.

Contoh :

Catatan :
Pencampuran sintaks di blok kontrol yang sama tidak didukung.

WARNING :
Setiap output (yang berjarak) antara pernyataan switch dan case pertama akan
menghasilkan kesalahan sintaks. Sebagai contoh, ini tidak valid:

10
Pertemuan 3 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Sedangkan ini berlaku, sebagai baris baru yang ikuti setelah pernyataan switch
dianggap bagian dari penutup ?> Sehingga tidak ada output antara switch dan case :

5. While
Loop While adalah jenis looping paling sederhana di PHP. While ini bertindak seperti
halnya while di bahasa C. Bentuk dasar dari pernyataan while adalah:
While ( expression )
Statement
Maksud pernyataan while sangat sederhana. while memberitahu PHP untuk
mengeksekusi pernyataan bersarang berulang kali, selama ekspresi while
mengevaluasi ke TRUE. Nilai ekspresi tersebut akan diperiksa setiap kali di awal loop,
bahkan jika nilai ini berubah selama pelaksanaan pernyataan bersarang, eksekusi tidak
akan berhenti sampai akhir iterasi (setiap kali PHP menjalankan script dalam loop
adalah salah satu iterasi). Kadang-kadang, jika ekspresi whhile mengevaluasi ke FALSE
sejak awal, pernyataan bersarang bahkan tidak akan berjalan sekali.

Seperti halnya pernyataan if, kita juga dapat mengelompokkan beberapa pernyataan
dalam satu looping while dengan menambahkan tanda kurung kurawa atau sintak
alternatif.
Contoh :

11
Pertemuan 3 Web Programming
2017 Lukman Fakih Lidinillah
PHP

12
Pertemuan 4 Web Programming
2017 Lukman Fakih Lidinillah
PHP

STRUKTUR KONTROL PART II

1. Do-while
Perulangan do-while sangat mirip dengan perulangan while. Bedanya adalah do-while ini
memeriksa kebenaran di akhir iterasi, al hasil do-while akan berjalan minimal 1 kali meski
kondisi adalah FALSE sedangkan while tidak akan berjalan sama sekali.

Contoh :

Program diatas akan menampilkan ”1000Akan tampil di browser”. Hal ini terjadi karena pada
struktur do-while, perulangan program akan tampil setidaknya 1 kali walaupun kondisi while
menghasilkan FALSE.

2. For
Perulangan For adalah perulangan yang paling kompleks di PHP, cara kerja for sendiri sama
halnya seperti perulangan lainnya. Sintak perulangan for adalah :

for (expr1; expr2; expr3)


statement

expr1 adalah kondisi pada saat awal perulangan. Biasanya kondisi awal ini digunakan untuk
membuat dan memberikan nilai kepada variabel counter yang digunakan untuk mengontrol
perulangan. Misalkan, kita akan membuat variabel counter $i, maka untuk kondisi start ini,
kita juga harus memberikan nilai awal untuk variabel $i, misalnya dengan 1, maka $i=1.
Condition adalah kondisi yang harus dipenuhi agar perulangan dijalankan. Selama kondisi ini
terpenuhi, maka PHP akan terus melakukan perulangan. Biasanya variabel counter digunakan
untuk mengatur akhir perulangan. Misalkan kita ingin menghentikan perulangan jika variabel
$i telah mencapai nilai 20, maka pada bagian condition ini kita membuat perintah $i<=20, yang
berarti selama nilai $i kurang atau sama dengan 20, terus lakukan perulangan.
Increment adalah bagian yang digunakan untuk memproses variabel counter agar bisa
memenuhi kondisi akhir perulangan. Biasanya, pada bagian inilah kita akan membuat kondisi
dari variabel counter.
Statement adalah bagian kode program yang akan diproses secara terus-menerus selama
proses perulangan berlangsung. Untuk statement ini, kita membuat blok program di antara
tanda kurung kurawal ({ dan }) sebagai penanda bahwa bagian di dalam kurung kurawal inilah
yang akan dikenai proses perulangan.

1
Pertemuan 4 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Sebagai contoh, kita akan membuat perulangan untuk menampilkan angka 1-15 kedalam web
browser, berikut kode PHP yang digunakan:

Setiap ekspresi bisa kosong atau berisi beberapa ekspresi dipisahkan dengan titik koma.
Dalam expr2, semua ekspresi dipisahkan dengan titik koma dievaluasi, tapi hasilnya diambil
dari bagian terakhir. expr2 yang kosong berarti loop harus dijalankan tanpa batas waktu
(PHP secara implisit menganggap sebagai TRUE, seperti C). Hal ini mungkin tidak berguna
seperti yang Anda bayangkan, karena sering Anda ingin mengakhiri loop menggunakan
pernyataan break kondisional daripada menggunakan ekspresi kebenaran.

Perhatikan contoh berikut. Semuanya menampilkan angka 1 sampai 10:

2
Pertemuan 4 Web Programming
2017 Lukman Fakih Lidinillah
PHP

3. Foreach
Foreach menyediakan cara mudah untuk mengelola atau menggunakan data array. foreach
hanya bekerja pada array dan objek, dan akan mengeluarkan pesan kesalahan saat Anda
mencoba untuk menggunakannya pada variabel dengan tipe data yang berbeda. Ada dua
sintak penulisan foreach:

foreach (array_expression as $value)


statement
foreach (array_expression as $key => $value)
statement

betuk pertama penulisan foreach hanya akan menampilkan value atau isi dari array yang di
sudah di tampung dalam variable array anda.
Sedangkan bentuk kedua foreach akan bisa / dapat menampilkan key / index dari array
tersebut.

Contoh 1 :

Contoh 2 :

4. Break
Ketika proses perulangan berjalan, ada kalanya kita ingin segera keluar dari perulangan jika
sebuah kondisi tertentu telah terpenuhi, sehingga sisa proses perulangan tidak perlu
dijalankan.

3
Pertemuan 4 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Misalkan kita memiliki nama-nama mahasiswa yang tersimpan di dalam sebuah array atau di
dalam database. Proses pencarian sederhana dapat dirancang dengan melakukan pencocokan
secara berulang dimulai dari nama pertama, kedua, dan seterusnya. Perulangan ini akan
dilakukan sebanyak daftar mahasiswa yang ada.

Akan tetapi, jika nama yang dicari telah ditemukan, proses perulangan seharusnya dapat
dihentikan saat itu juga, karena tujuan pencarian nama telah selesai.

Untuk keperluan inilah PHP menyediakan instruksi break. Break berfungsi sebagai perintah
kepada web server untuk menghentikan perulangan secara prematur, yaitu menghentikan
perulangan di luar dari yang direncanakan.

Cara Penulisan Break :


Perintah break dapat di letakkan di posisi manapun di dalam perulangan, namun biasanya kita
akan membuat logika IF untuk menentukan kapan perintah break akan dijalankan.

a. Penggunaan Break pada for

Contoh :

b. Penggunaan Break pada While

Contoh :

4
Pertemuan 4 Web Programming
2017 Lukman Fakih Lidinillah
PHP

c. Penggunaan Break pada perulangan bersarang (nested loop)


Untuk perulangan bersarang (nested loop), instruksi break bisa bermakna ganda, yaitu
apakah kita ingin menghentikan perulangan luar, atau perulangan dalam.

Contoh 1 ( perulangan bersarang ) tanpa di break :

Contoh 2 break pada loop / perulangan dalam saja :

Contoh 3 break pada loop diatasnya :

5
Pertemuan 4 Web Programming
2017 Lukman Fakih Lidinillah
PHP

5. Continue
Perintah continue juga digunakan untuk men-interupsi perulangan dalam PHP, namun jika
perintah break digunakan untuk menghentikan perulangan, maka perintah continue hanya
akan menghentikan perulangan untuk 1 iterasi saja, lalu proses perulangan akan dilanjutkan.
Berikut contoh kode PHP penggunaan perintah continue:

6. Switch
Struktur logika switch adalah sebuah stuktur percabangan yang akan memeriksa suatu
variabel, lalu menjalankan perintah-perintah yang sesuai dengan kondisi yang mungkin terjadi
untuk variabel tersebut. Struktur switch ini mirip dengan struktur IF yang ditulis berulang.

Katakan kita ingin membuat sebuah program yang akan menampilkan kata dari angka 0-5,
sehingga terdapat 6 kemungkinan yang terjadi. Jika menggunakan struktur IF, maka kita akan
membutuhkan 6 perulangan sebagai berikut:

6
Pertemuan 4 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Tidak ada yang salah dari kode program tersebut, namun jika kita menggunakan switch, kode
tersebut dapat ditulis menjadi:

Kedua kode program akan menghasilkan output yang sama, namun untuk kondisi logika yang
diuji merupakan kondisi sederhana, penulisan dengan switch lebih disarankan dibandingkan
IF.

a. Aturan Penulisan Switch dalam PHP


Seperti yang terlihat dalam contoh sebelumnya, struktur switch terdiri dari beberapa
bagian, berikut format dasar penulisan switch dalam PHP:
switch ($var)
{
case value1:
statement1;
break;
case value2:
statement2;
break;
}
Setelah kata kunci switch, kita harus mencantumkan variabel yang akan diperiksa nilainya
didalam tanda kurung, lalu memulai block switch dengan kurung kurawal.
Tiap kondisi yang mungkin terjadi dicantumkan setelah kata kunci case, lalu diikuti dengan
nilai yang akan dibandingkan dengan nilai variabel switch. Jika kondisi sesuai, maka baris

7
Pertemuan 4 Web Programming
2017 Lukman Fakih Lidinillah
PHP

program statement akan dijalankan. Kata kunci break digunakan untuk keluar dari switch,
sehingga PHP tidak perlu memeriksa case berikutnya.
Alur program untuk switch akan dieksekusi dari baris pertama sampai terakhir. Kata kunci
break memegang peranan penting untuk menghentikan switch.
Perhatikan contoh kode PHP berikut:

Namun, untuk kasus diatas, kita ingin mengistruksikan kepada PHP bahwa setelah case
ditemukan, maka switch harus berhenti.
Untuk instruksi ini, kita harus menggunakan kata kunci break. Instruksi break
memberitahu PHP untuk segera keluar dari switch, dan tidak menjalankan case lainnya.
Berikut adalah kode program switch kita setelah ditambahnya keyword break:

Selain kata kunci break, PHP menyediakan kata kunci default untuk alur switch. Kata kunci
ini berfungsi seperti ELSE di dalam struktur IF, yakni kondisi dimana seluruh case untuk
switch tidak ada yang cocok. Kata kunci default ini diletakkan di akhir dari switch.
Untuk contoh kita diatas, saya akan menambahkan bagian default sebagai perintah yang
akan dijalankan jika nilai dari variabel $a duluar dari angka 0-5. Berikut kode PHP nya:

8
Pertemuan 4 Web Programming
2017 Lukman Fakih Lidinillah
PHP

PHP membolehkan kita menjalankan satu statement saja untuk case yang berlainan,
seperti contoh kode PHP berikut ini:

b. Perbedaan Antara IF dan Switch


Walaupun memiliki tujuan yang hampir sama, namun struktur IF dan switch memiliki
perbedaan yang mendasar.
Didalam struktur switch, kondisi logika hanya akan diperiksa satu kali saja, yaitu pada awal
perintah switch, dan hasilnya di bandingkan dengan setiap case. Akan tetapi di dalam
struktur if, setiap kondisi akan selalu diperiksa. Sehingga jika anda memiliki struktur
percabangan yang banyak, struktur switch akan lebih cepat dieksekusi.

9
Pertemuan 4 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Namun disisi lain, switch memiliki keterbatasan dalam jenis operasi perbandingan yang
dapat dilakukan. Operasi perbandingan di dalam switch terbatas untuk hal-hal sederhana
seperti memeriksa nilai dari sebuah variabel.
Struktur switch tidak bisa digunakan untuk percabangan program dengan operasi yang
lebih rumit seperti membandingkan 2 variabel. Kita tidak bisa menggunakan switch untuk
membuat kode program menentukan nilai terbesar seperti contoh pada tuturial IF
sebelum ini.
Untuk kebanyakan kasus, kita akan sering menggunakan IF dibandingkan switch.

7. Include, Require, Include_once, require_once


PHP memiliki kemampuan untuk menyertakan file php lainnya ke dalam suatu program PHP.
Tentunya kemampuan ini sangat berguna bagi programmer karena tidak perlu menuliskan
suatu perintah yang diperlukan di setiap file berulang kali, cukup ditulis di satu file dan
disertakan di file yang memerlukannya. Contoh bagian dari program PHP yang biasanya
dituliskan di file terpisah dan disertakan di file-file lainnya adalah potongan program untuk
melakukan koneksi ke database. Kita tentu sudah memahami bahwa koneksi ke database
harus dilakukan terlebih dahulu sebelum kita berurusan dengan data yang disimpan di
database.
Terkait dengan hal tersebut, PHP memiliki beberapa fungsi untuk menyertakan suatu file yaitu
include(), require(), include_once() dan require_once(). Lalu apa perbedaan antara keempat
fungsi tersebut? Dan sebaiknya kita menggunakan fungsi yang mana? Dalam tutorial singkat
ini akan dijelaskan mengenai maksud dan perbedaan dari fungsi-fungsi tersebut serta kapan
kita harus menggunakannya.

a. Perbedaan fungsi include dan require


Terkait dengan fungsi include(), manual PHP menyatakan bahwa “The include statement
includes and evaluates the specified file”. Artinya fungsi include() akan menyertakan dan
mengevaluasi seluruh program yang ada di file yang disertakan. Jika terdapat error pada
program yang disertakan, maka error akan ditampilkan di layar. Dan jika file yang
disertakan ternyata tidak ditemukan (mungkin karena lokasi yang salah atau memang file
tidak ada), maka program selanjutnya (setelah include) akan tetap dijalankan walaupun
ditampilkan error.
Perhatikan contoh program koneksi.php sederhana berikut ini.

Dan berikut ini program coba.php yang akan menyertakan file koneksi.php di atas
menggunakan fungsi include()

10
Pertemuan 4 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Jika program coba.php di atas dijalankan dan file koneksi.php berjalan dengan baik dan
tidak ada error maka akan ditampilkan text “Program setelah koneksi” tanpa adanya
error. Namun jika pada file koneksi.php ternyata tidak ditemukan, maka tulisan “Program
setelah koneksi” tetap ditampilkan walaupun disertai error yang disebabkan karena file
koneksi.php tidak ditemukan. Berikut ini contoh tampilannya.

Perintah require() pada dasarnya sama dengan perintah include(). Perbedaannya hanya
terletak pada saat file yang disertakan tidak ditemukan, maka perintah-perintah
selanjutnya tidak akan dijalankan. Perhatikan program coba.php di atas. Jika perintah
include pada baris ke-2 diganti dengan perintah “require” dan program koneksi.php tidak
ditemukan, maka teks “Program setelah koneksi” tidak akan ditampilkan, melainkan
hanya menampilkan error. Berikut ini contoh tampilannya.

b. Perbedaan antara *_once dan tanpa _once


Lalu bagaimana perbedaan antara include() dengan include_once() serta require() dan
require_once() ? Penambahan akhiran _once baik pada include maupun require akan
memastikan bahwa file yang disertakan hanya dieksekusi sekali saja, walaupun file
disertakan beberapa kali. Sebaliknya tanpa akhiran _once penyertaan file yang sama
beberapa kali mungkin akan menyebabkan error.

11
Pertemuan 4 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Kesimpulannya :
Tentu kuncinya, gunakan sesuai kebutuhan. Saat kita akan menyertakan file yang
memang harus dipastikan bahwa program pada file tersebut harus berjalan dengan baik
sebelum bagian program yang lainnya, ya gunakanlah fungsi require. Contohnya adalah
dalam menyertakan file berisi koneksi ke database atau file konfigurasi situs.
Sebaliknya, saat file yang disertakan tidak mempengaruhi jalannya program yang
lainnya, kita bisa menggunakan fungsi include. Sementara itu, penggunaan
include_once atau require_once lebih disarankan untuk memastikan bahwa file yang
disertakan tidak dieksekusi lebih dari sekali.

12
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP

SUPER GLOBAL VARIABLE (SERVER, POST, GET, FILES, REQUEST, SESSION, COOKIE)

Pada modul sebelumnya, sudah pernah disinggung tentang Predefined Variables, diamana salah
satu sifat dari variable predefined adalah global, maksudnya adalah variable variable tersebut dapat
diakses diamana saja, baik itu bersifat scope atau tidak, maka dari itu sering kali Predefined Variable
disebut sebagai variable super global. Berikut penjelasan masing masing variable super global yang
sering digunakan.

A. SGV (Super Global Variable) SERVER


SGV Server ini berguna untuk mendapatkan informasi-informasi mengenai server, seperti
headers, HTTP_Connection, dll.(Informasi lebih detail mengenai SGV Server dapat dilihat
pada http://php.net/manual/en/reserved.variables.server.php). Berikut adalah dbugging
pada SGV Server yang mana akan menampilkan daftar informasi server dalam bentuk array.

Dari code / script diatas maka akan muncul data dalam bentuk array tentang informasi
server. Seperti gambar dibawah ini :

Pada gambar diatas, terlihat bahawa informasi tersebut diambil dari server. Selain itu kita
dapat memanggil informasi tersebut satu persatu atau secara keseluruhan. Seperti contoh
kita akan memanggil informasi mengenai Nama Server pada script dibawah ini :

1
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP

B. SGV GET, POST, REQUEST


Dalam dunia internet terdapat istilah protokol HTTP, yang mana protokol tersebut paling
umum digunakan dalam dunia internet (jaringan global) untuk pertukaran data antara client
dan server. Ada beberapa metode request yang digunakan dalam protokol HTTP,
diantaranya GET dan POST. Jadi ketika membahas metode pengiriman GET ataupun POST
dalam bahasa pemrograman baik PHP, ASP ataupun yang lainnya maka seyogyanya kita
membahas GET dan POST pada protokol HTTP.
PHP sendiri dalam berkomunikasi menggunakan protokol HTTP maka dari itu PHP
menyediakan sarana untuk menangani metode GET dan POST dalam proses request data.
GET dan POST pada PHP termasuk Predefined Variable yang artinya GET ataupun POST
secara otomatis menjadi Variable SuperGlobal, yang dapat diakses oleh seluruh file-file PHP.
1. GET
Metode GET ini ditujukan untuk mengambil data dari server dengan model request
query string yang dikirim via url. Data yang dikirim tersebut dapat digambarkan dengan
key=value dan dipisahkan dengan tanda &. Query atau data tersebut digabungkan
dengan url utama dengan tanda pemisah ?.
Query GET tersebut tidak serta-merta dikirim begitu saja, akan tetapi query tersebut
masih diproses terlebih dahulu sebelum dikirim pada server agar sesuai standar format
URL. URL hanya boleh memuat huruf (besar dan kecil), angka, dan beberapa karakter
lain dalam ASCII Character Set seperti (“.-_~), karakter di luar itu akan diubah ke format
tertentu yang diawali tanda % kemudian diikuti dengan 2 digit hexadesimal, contoh:

Karakter URL Encoded

? %3F

@ %40

= %3D

Angka pada kolom (URL Encoded) merupakan nilai hexadecimal dari character ASCII,
disamping itu URL juga tidak boleh memuat spasi, sehingga spasi akan diubah menjadi
tanda + atau %20 . Semua proses tersebut disebut url encoding.

Berikut ini merupakan contoh penggunaan metode GET pada form. Kita buat file
registrasi.php dan tuliskan kode HTML berikut ini:

2
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Setelah itu simpan dan jalankan pada browser, pada field yang muncul, misal kita isikan
nama: Lukman Fakih Lidimilah Hadi, email: luky.lukman7@gmail.com, jika kita klik
Submit, maka browser akan mengirim request dengan bentuk seperti gambar berikut ini:

Pada gambar diatas terlihat bahwa proses request terhadap server menggunakan
metode GET dan query atau data dikirim via url. Query yang terlihat tersebut sudah
sesuai standar format URL. Selain itu url pada browser akan berubah menjadi seperti
gambar diatas (kolom merah).

3
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Setelah request dikirim oleh client, bagaimana PHP menangkan data yang dikirim
menggunakan metode GET terseubt? PHP menangkan data tersebut menggunakan
Variable SuperGlobal GET ($_GET), seperti yang terlihat pada gambar dibawah ini :

Jika kode diatas dieksekusi atau dijalankan pada browser maka akan menampilkan data
seperti gambar dibawah ini :

Variabel $_GET pada PHP berbentuk associative array (array yang peng-identifikasian
indexnya mengguanakan nama). Variabel ini bentuknya sama seperti variabel pada
umumnya, bedanya $_GET ini merupakan variabel globlal sehingga bisa diaksess dimana
saja.

Karena bentuknya sama dengan yang lain, variabel ini dapat kita manipulasi
sebagaimana kita memanipulasi variabel array lainnya, misal dengan menambahkan
nilainya: $_GET['status'] = 'aktif' atau menghapusnya unset($_GET['nama']).

 Kelebihan Menggunakan Metode GET


- Simpel, dan data mudah diedit, misal untuk menuju halaman 5 dari suatu
website, kita tinggal mengganti urlnya.
- Halaman dapat dibookmark dan disimpan pada history browser sehingga mudah
untuk diakses kembali.

4
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP

- Dapat kembali ke halaman sebelumnya dengan mudah (dengan mengklik tombol


Back pada browser).
- Dapat direfresh dengan mudah.
- Dapat di distribusikan/dishare.

 Kekurangna Menggunakan Metode GET


- Panjang data terbatas hanya 2kb – 8kb (tergantung browsernya), jika melebihi
batas tersebut akan muncul pesan error 414 Request-URI Too Long, sehingga
tidak dapat digunakan untuk mengirim data dalam jumlah besar.
- Hanya dapat mengirim data jenis teks, jenis lainnya seperti: gambar, file zip, dll
tidak dapat dikirim.
- Karena data dikirim via URL, data tersebut mudah terekspose.
2. POST
Kita sering mendengar istilah post, yang biasanya terkait dengan POSTing ke sosial
media, dimana pada kegiatan tersebut kita mengirim data berupa tulisan atau gambar
untuk disimpan di server sosial media tersebut.

Begitu juga dengan istilah POST pada HTTP, POST digunakan untuk mengirim data yang
biasanya di gunakan untuk menambah/merubah data pada server.

Pada protokol HTTP, metode POST dapat dikirim baik melalui query string maupun body,
seperti pada GET, data yang dikirim melalui query string akan ditampilkan pada URL dan
sedangkan yang dikirim melalui body tidak terlihat oleh user.

Pada PHP, data POST yang dikirim melalui query string disimpan pada variabel $_GET
(seperti metode GET) sedangkan yang dikirim melalui body disimpan pada variabel
$_POST.

Sama seperti $_GET, variabel $_POST juga berbentuk associative array dan bersifat
global yang artinya dapat diakses dimana saja, selain itu juga dapat dilakukan manipulasi
sebagaimana variabel array lainnya.

Penggunaan metode POST sering kita jumpai terutama pada saat pengiriman data
menggunakan form html. Misal: meneruskan contoh sebelumnya, pada file
registrasi.php kita ganti method pada bagian form dari get menjadi post.

5
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Misalkan jika field kita isi dengan nama: Lukman Fakih L dan Email:
luky.lukman7@gmail.com, ketika kita klik submit, maka browser akan mengirim request
ke server dengan bentu seperti gambar dibawah ini:

dari gambar diatas terlihat data dikirim pada bagian body (kotak merah paling bawah)
dan data yang dikirim diencode dengan sistem sama dengan GET (url encode) yang
memang secara default cara pengiriman data pada POST adalah menggunakan
application/x-www-form-urlencoded, disamping itu juga ada multipart/form-data yang
digunakan untuk pengiriman data berupa file/binary.

6
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP

 Kelebihan menggunakan metode POST


- Lebih aman dari pada metode GET karena data yang dikirim tidak terlihat, serta
parameter yang dikirim tidak disimpan pada history browser/log browser.
- Dapat mengirim data dalam jumlah besar.
- Dapat mengirim berbagai jenis data seperti gambar, file, dll, tidak harus teks.
 Kekurangan menggunakan metode POST
- Data tidak disimpan pada history browser.
- Data tidak dapat dibookmark.
- Karena dianggap sebagai data sensitif, maka ketika kita merefresh browser, akan
muncul konfirmasi pengiriman ulang data, demikian juga ketika kita tekan
tombol back.
3. REQUEST
PHP menyediakan variabel global bernama $_REQUEST, variabel ini merupakan
gabungan dari tiga variabel yaitu: $_GET, $_POST dan $_COOKIE. Karakteristik variabel
ini sama dengan $_GET dan $_POST yaitu berbentuk associative array yang bersifat
global dan dapat kita manipulasi seperti variabel array lainnya.

Dalam pembentukan variabel $_REQUEST, variabel yang menjadi prioritas adalah


$_POST, sehingga jika antara $_GET dan $_POST terdapat key yang sama, maka yang
digunakan adalah data pada variabel $_POST, contoh mari kita ubah file register.php
dengan menambahkan satu hidden field bernama action:

7
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP

seperti pada contoh sebelumnya, kita isikan nama: Lukman Fakih L dan email:
luky.lukman7@gmail.com, ketika kita submit maka kita dapatkan hasil:

dari contoh diatas terlihat bahwa nilai action yang digunakan adalah insert yang
terdapat pada variabel $_POST

Saya pribadi jarang dan mungkin tidak pernah menggunakan variabel $_REQUEST karena
akan menyulitkan dan membuat ambigu, tidak jelas dari mana datangnya data apakah
dari inputan user atau dari url, terlebih jika program yang kita buat kompleks, dengan
menggunakan $_GET atau $_POST masalah tersebut tidak akan terjadi.
4. KAPAN HARUS MENGGUNAKAN GET, POST?
Untuk memutuskan apakah kita akan menggunakan metode GET atau POST, kita harus
selalu mengajukan pertanyaan: apakah akan terjadi perubahan pada server? jika ya,
maka kita gunakan POST, jika tidak maka kita gunakan GET.

Contohnya adalah ketika membuat pagination, kita cukup menggunakan GET tidak perlu
POST, bisa dibayangkan ketika kita sudah sampai halaman 5 suatu artikel, dan kita mau
membookmarknya untuk dibaca di lain waktu, dan ternyata tidak bisa karena halaman
tersebut mengunakan POST, dengan terpaksa kita harus membuka halaman 1 lagi!,

Begitu juga dengan sistem pencarian seperti pada google, bisa dibayangkan jika metode
yang digunakan adalah POST.

Contoh lainnya adalah penggunaan ID untuk menghapus data, perhatikan url berikut:
http://www.contoh.com/user.php?action=delete&id=1, url ini akan berbahaya jika hal
ini benar-benar terjadi.

8
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Kenapa?
Karena data user akan terhapus dengan begitu mudahnya, lain halnya jika ID tersebut
digunakan hanya untuk menampilkan data seperti
http://www.contoh.com/user.php?action=view&id=1.

singkatnya GET untuk READ data, POST untuk CREATE, UPDATE, DELETE data.

Pertanyaan kedua adalah apakah ada data sensitif yang dikirim? jika ya maka kita
gunakan POST.

Contohnya adalah pengiriman username dan password ketika login, atau data keuangan
seperti kartu kredit. Jika data tersebut dikirim via url maka jelas data tersebut akan
terekspose kemana-mana terutama jika ter index oleh google. (Kecuali pada
penggunaan AJAX).
5. KAPAN HARUS MENGGUNAKAN REQUEST?
Jawabannya tergantung kepada desain kode program yang dirancang. Jika anda dapat
memastikan bahwa form akan dikirim dengan method=get, maka gunakan variabel
$_GET, jika from anda menggunakan method=post, maka gunakan $_POST, namun jika
metodanya tidak dapat dipastikan, variabel superglobal $_REQUEST bisa menjadi solusi.
Akan tetapi penulis sendiri jarang bahkan mungkin bisa dibilang tidak pernah
menggunakan metode $_REQUEST, karena terasa membingunkan ketika coding :D.

C. SESSION
Dalam PHP, session merupakan data yang disimpan dalam suatu server yang dapat
digunakan secara global di server tersebut, dimana data tersebut spesifik merujuk ke
user/client tertentu, contoh penggunaan session adalah ketika user telah login di halaman
tertentu, maka ketika membuka halaman lain, php akan mengingat bahwa user tersebut
telah login, contoh ketika kita telah login pada Google, maka setiap kali kita membuka
layanan Google seperti GMail, Google Drive, dll di tab berbeda, kita akan selalu dalam
keadaan login, kecuali kita buka dengan browser yang berbeda. Cntoh lain ketika web
ecommerce merekam keranjang belanja user, maka ketika pindah ke halaman pembayaran,
daftar belanja masih terekam.
1. CARA KERJA SESSION
a. Sisi Server
Dari sisi server php akan membuat file yang kita sebut file session yang diawali
dengan sess_ dan diikuti dengan ID session, dimana ID Session tersebut
mereferensikan id session yang ada di browser client. nilai ID session adalah:

Jika browser mengijinkan penggunaan cookie, maka ID session berupa angka acak
sebanya 26 karakter hexadesimal, contoh: 1g7vcm79tg4869tp8u53gldl02
Jika browser tidak mengijinkan penggunaan cookie
Jika nama session ada di url, maka nilai ID Session sama dengan id yang ada di url,
misal http://jagowebdev.com?page=login&PHPSESSID=1234, maka ID Session yang
digunakan adalah 1234, sehingga nama file session yang dibuat sess_1234, Namun

9
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP

jika ID Session tidak ada di URL, maka PHP akan membuat file dengan ID Session
sama seperti sebelumnya yaitu 26 karakter hexadesimal, file ini akan dibuat setiap
kali perintah session_start() dijalankan, dan tidak ada referensi ke user/client.
Terus dimana php menyimpan file session tersebut? file tersebut secara default
disimpan didalam direktori temporary dimana letak direktory ini tergantung dari
masing-masing sistem opersi yang digunakan. untuk mengetahui dimana php
menyimpan file session, dapat menggunakan perintah: session_save_path() Misal
kita buat file session.php dan simpan ke dalam htdocs/tutorial, selanjutnya tuliskan
kode berikut:

Ketika kita jalankan file tersebut di komputer yang menggunakan sistem operasi
windows, contoh output yang dihasilkan adalah E:\xampp-1.8.3.2\tmp (komputer
saya), jika kita buka direktori tersebut, disana kita temukan banyak file .tmp, cari
nama dengan awalan sess_ , file tersebut merupakan file session.

Gambar Contoh File Session

b. Sisi Client
 Jika browser mengijinkan penggunaan cookie
Membuat file cookie dengan nama default yaitu PHPSESSID dengan nilai (value)
ID session, lokasi penyimpanan file tersebut berbeda beda tergantung jenis
browser yang digunakan, untuk google chrome lokasi cookie berada
di:C:\Users\<NAMA USER>\AppData\Local\Google\Chrome\User Data\Default
dengan nama file Cookie, namun kita tidak dapat membukanya secara langsung,
melainkan harus menggunakan SQLite, kita dapat membaca isinya melalui
Chrome Developer Tools, yaitu pada tab Resources bagian Cookies, contoh
seperti gambar berikut:

10
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Gambar Cookie PHPSESSID

Jika kita bandingkan antara Gambar Contoh File Session dan Gambar Cookie
PHPSESSID terdapat kesamaan nilai yaitu 1g7vcm79tg4869tp8u53gldl02 yang
merupakan ID Session, dengan ID ini, maka setiap kali user mengunjungi situs
yang sama dan dengan browser yang sama, maka server akan selalu
menggunakan data-data yang ada di file sess_1g7vcm79tg4869tp8u53gldl02.
 Jika browser tidak mengijinkan penggunaan cookie
Jika nama session berada di url, maka PHP akan membuat referensi ID Session
sesuai dengan yang ada di URL. Misal:
http://site.com?page=login&PHPSESSID=1234, maka php akan menggunakan
data session pada file session sess_1234 . Jika ID session tidak ada di URL maka
data session hanya dapat digunakan di halaman tersebut saja.

2. MENGAKTIFKAN SESSION / MEMBUAT SESSION


Untuk mengaktifkan Session anda harus menggunakan source berikut ini :
session_start();
3. REGISTRASI SESSION
Setelah mengaktifkan session secara eksplisit pada setiap halaman akan menggunakan
objek session, maka selanjutnya harus mendaftarkan nama session yang akan
digunakan.
Semisal :
session_register(“username”);

CATATAN : session_register(), session_unregister sudak tidak disukai lagiuntuk digunakan


dan didalam manual PHP sendiri tidak mengajurkan untuk menggunakan kedua session

11
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP

tersebut. Alternatifnya akan digunakan $_SESSION[“namasession”]; ini yang sering


digunakan!

Contoh :
<?php
session_start();
// register
session_register("username");
$_SESSION["username"]="lukman";
// mencetak dengan username
echo$_SESSION["username"];
echo"<br>";
// lakukan proses pengecekan
if($_SESSION["username"]=="lukman"){
echo"user di izinkan";
}
else
{
echo"Tidak di izinkan";
}
?>

CATATAN2: jika muncul Deprecated pada source diatas berarti ver PHPnya sudah baru
dan session register sudah usang / tidak digunakan lagi.

4. MENJALANKAN SESSION
Contoh mencatat pengunjung dengan session:
<?
session_start();

if(!isset($_SESSION["count"])){
$_SESSION["count"]=0;
}
else
{
$_SESSION["count"]++;
}

if($_SESSION["count"]==0){
echo"Anda baru mengunjungi halaman ini";
}
else
{
echo"Anda sudah mengunjungi sebanyak ";
echo$_SESSION["count"];
}
?>

CATATAN 3: Penulisan $_SESSION[], harus menggunakan huruf kapital karena case_sensitive

5. MENGHAPUS SESSION

12
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Setelah menggunakan session ada kalanya ingin menghilangkan objek session tersebut
untuk membuat objek session baru lainnya. Sintaknya adalah :
Session_unregister(“nama_session”);
Dengan sintak diatas maka $_SESSION[“nama_session”]; akan dihapus

CATATAN 4 : session_unregister(), sudah tidak banyak digunakan lagi untuk menghapus


session, PHP sendiri menyarankan untuk menggunakan unset().
Tambah : session_destroy();

Contoh menghapus variable session :

<?
Session_start();
// untuk menghapus varable session menggunakan unset()

unset($_SESSION[“count”]);
?>

Output:

$_SESSION[“count”] akan dihapus sehingga, pada listing menghitung pengujung nilai


awalnya akan dikembalikan ke 0.

D. COOKIES
COOKIES adalah sebuah file teks yang berisi data tertentu yang disimpan oleh browser. Data
pada COOKIES ini dikelompokkan berdasarkan domain, sehingga ketika browser mengakses
domain tertentu (misal: www.example.com), maka hanya data COOKIES yang terkait domain
tersebut yang dikirim.

1. CARA KERJA COOKIES


Pertama-tama, browser meminta webserver (misal pada www.example.com) untuk
memberikan data halaman tertentu, ketika mengirim data, webserver memerintahkan
browser untuk menyimpan data ke file COOKIES.

Selanjutnya, ketika browser kembali mengakses website tersebut, browser akan


sekaligus mengirim data COOKIES yang disimpan tadi.

Data COOKIES tersebut digunakan oleh webserver untuk berbagai keperluan, termasuk
menerapkan setting tertentu pada data yang akan dikirim kembali ke browser.

Misal:
 User A dengan browser Firefox mengunjungi website www.example.com kemudian
mengakses menu setting dan menerapkan tema biru dan bahasa antar muka Bahasa
Inggris.
 Di belahan negara lain, user B dengan browser Firefox menerapkan tema hijau
dengan bahasa antar muka Bahasa Indonesia.

13
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Nah agar server www.example.com mengetahui tema dan bahasa yang telah diterapkan
oleh masing-masing user pada masing masing browser, maka www.example.com
memerintahkan browser untuk menyimpan data setting tersebut.

Selanjutnya ketika browser tersebut kembali mengunjungi www.example.com, data


COOKIES tersebut ikut dikirim sehingga server tahu tema dan bahasa apa yang akan
diterapkan kepada browser tersebut.

Untuk lebih jelasnya, perhatikan ilustrasi berikut:

Pada contoh diatas terlihat bahwa server (dalam hal ini www.example.com) dapat
memanfaatkan data COOKIES hanya pada request ke dua (step ke 3) dan seterusnya,
tidak bisa pada request pertama, karena pada request pertama tersebut, data COOKIES
sedang dibuat.
2. MENJALANKAN COOKIES / MEMBUAT COOKIES
Untuk mengaktifkan atau menjalankan COOKIES menggunakan sintak berikut :
setcookie ();
Contoh :
setcookie(“username”,”lukman”);
3. MENGHAPUS COOKIES
Untuk menghapus COOKIES caranya adalah :
setcookie(“username”,””);
Cukup dikosongkan saja pada bagian value dari COOKIESnya.
4. CONTOH COOKIES
Buat file baru dengan nama testCOOKIES.php dan ketikkan kode berikut :

14
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP

15
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP

16
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP

E. UPLOAD FILE
Fungsi upload file ini bertujuan untuk proses uploading dokumen dari client ke server.
Ada sedikit perbedaan pada form HTML terkait proses upload dokumen atau file ini,
perbedaan tersebut yaitu ketika akan memproses file untuk di upload maka form HTML
wajib ada enctype="multipart/form-data" seperti yang terlihat pada gambar dibawah ini :

17
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Pada proses upload file PHP sendiri sudah mempunyai Variable SuperGlobal untuk
menanganinya yaitu menggunakan $_FILESfile yang dikirim dari browser akan ditangkap
oleh PHP menggunakan $_FILES.

$_FILES akan digunakan sebagai variable untuk mengambil seluruh atribut file, yang terdiri
atas.
1. $_FILES[‘upload][‘name’] , digunakan untuk mengambil nama file dari file yang akan di
upload / dikirim ke server. Nama file terdiri atas alamat folder yang lengkap.
2. $_FILES[‘upload][‘type’] , digunakan untuk menentukan tipe file yang akan dikirim ke
server.
3. $_FILES[‘upload][‘size’] , digunakan untuk menentukan besar file yang akan dikirim.
4. $_FILES[‘upload][‘tmp_name’] , digunakan untuk mengambil nama file dari folder temp
5. $_FILES[‘upload][‘error’] , digunakan untuk mengambil kode kesalahan yang terjadi
pada saat file dikirim ke server.

Jika file beserta attributnya sudah ditangkap oleh PHP tentu kita ingin menampung file
tersebut pada directory server. Maka untuk menangani hal tersebut PHP menyediakan
fungsi move_uploaded_file()untuk proses upload atau menyimpan file pada directory
server.

move_uploaded_file(string filename, string lokasitujuan);

Agar penjelasan diatas dapata dipahami maka coba dengan membuat sebuah direktori baru
dengan nama latihanupload. Jika folder atau direktori sudah dibuat maka buatlah file baru
dalam direktori latihanuploaddengan nama upload.php dan satu buah direktori dengan
nama fileupload dalam direktori latiahanupload, dan ketikkan code dibawah ini :

Susunan direktori

18
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Code pada file upload.php

Tampilan pada browser sebelum upload file

Setelah upload file

19
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP

File yang sudah terupload akan secara otomatis di simpan pada direktori yang sudah
ditentukan pada code diatas dalam hal ini yaitu baris code :

Jika sukses maka pada direktori server yang sudah ditentukan sebagai tempat penyimpanan
file tersebut pasti akan terdapat file yang sudah di upload, seperti pada gambar dibawah ini:

Note : untuk penjelasan lebih rinci dapat dilihat di situs resmi PHP yaitu http://php.net/

20
Pertemuan 6 Web Programming
2017 Lukman Fakih Lidinillah
PHP

FUNGSI STANDAR PHP

A. FUNGSI VALIDASI
Fungsi ini digunakan untuk proses pemeriksaan terhadap variable-variable yang berada
diluar PHP, biasanya variable-variable tersebut bersumber dari form inputan. Ada beberapa
fungsi validasi yaitu:
1. Empty (untuk memriksa variable apakah terisi atau tidak)
Fungsi empty adalah fungsi bawaan php yang digunakan untuk memeriksa variable dari
form HTML, apakah variable tersebut kosong (termasuk variable yang di unset) atau
tidak, jika variable tersebut bernilai kosong maka mengembalikan nilai true dan jika
tidak akan mengembalikan nilai false. Contoh seperti dibawah ini :

2. Isset ( untuk memriksa variable sudah terbentuk atau belum, berbeda dengan empty
yang melakukan pmeriksaan terhadap variable yang sudah ada sedangkan isset
melakukan pemeriksaan terhadap eksistensi variable)
Isset adalah fungsi bawaan PHP yang digunakan untuk memeriksa variable, apakah
sudah diset (dideklarasikan / sudah terjadi) atau tidak, jika variable tersebut sudah
dibuat maka akan mengembalikan nilai true dan sebaliknya jika variable tidak dibuat
atau sudah di unset maka akan mengembalikan nilai false. Berikut contoh penggunaan
isset :

1
Pertemuan 6 Web Programming
2017 Lukman Fakih Lidinillah
PHP

3. Unset ( untuk menghilangkan / menghapus variable yang ditentukan )


Unset adalah kebalikan dari Isset dimana Unset digunakan untuk menghapus variable
atau mengunset variable, dan membebaskan memori yang sudah digunakan variable
tersebut. Berikut contoh penggunaan Unset :

Hasil dari code diatas akan menampilkan value dari variable contoh yaitu “data” dan
ketika di unset maka variable contoh akan hilang seperti terlihat pada gambar dibawah
ini :

Jika digabungkan dengan isset maka akan muncul seperti dibawah ini :

2
Pertemuan 6 Web Programming
2017 Lukman Fakih Lidinillah
PHP

B. PEMERIKSAAN VARIABLE
Fungsi ini akan melakukan pemeriksaan terhadap variable yang digunakan.
1. Is_array ( untuk melakukan pemeriksaan pakah variable yang dikirm berupa array atau
bukan )
Contoh :

2. Is_int ( untuk melakukan pemeriksaan pakah variable yang dikirm berupa bulat /
integer atau bukan )
Contoh :

3. Is_float ( untuk melakukan pemeriksaan pakah variable yang dikirm berupa pecahan /
float / double atau bukan )
Contoh :

3
Pertemuan 6 Web Programming
2017 Lukman Fakih Lidinillah
PHP

4. Is_bool ( untuk melakukan pemeriksaan pakah variable yang dikirm berupa boolean
atau bukan )
Contoh :

5. Is_string ( untuk melakukan pemeriksaan pakah variable yang dikirm berupa string
atau bukan )
Contoh :

C. PENGALIHAN HALAMAN
Redirect atau Pengalihan Halaman merupakan salah satu cara yang digunakan untuk
memindahkan proses jika proses sebelumnya sukses atau terjadi kesalahan.
1. Header (digunakan untuk mengalihkan ke halaman yang dituju)
Contoh :
Buatlah dua file php dengan masing masing nama halaman1.php dan halaman2.php,
pada halaman1.php isikian skrip :

Sedangkan pada halaman2.php isikan code berikut :

4
Pertemuan 6 Web Programming
2017 Lukman Fakih Lidinillah
PHP

D. FUNGSI-FUNGSI MODIFIKASI STRING


1. Fungsi Trim
Fungsi ini untuk menghilangkan atau memotong spasi kosong pada bagian awal dan
akhir dari string. Selain trim() ada juga ltrim() dan rtrim(). Fungsi ltrim() unutk
menghilangkan spasi sebelah kiri dan rtrim() unutk menghilangkan spasi sebelah kanan.
Contoh :

Hasil :

2. Fungsi Substr
Fungsi ini untuk mengambil sebagian data dari string dimulai dari awal yang ditunjukan
oleh argument ke dua dan jumlah string yang ditunjukan oleh argumen ke tiga.
Contoh :

3. Fungsi StrStr
Fungsi ini untuk menampilkan karakter yang dimulai dari karakter yang ditemukan pada
string sampai pada runtutan yang dicari.
Contoh :

4. Fungsi Str Replace


Fungsi ini untuk menggantikan suatu string tertentu dengan string lainnya.
Contoh :

5
Pertemuan 6 Web Programming
2017 Lukman Fakih Lidinillah
PHP

5. Fungsi Explode
Fungsi ini untuk memisahkan teks berdasarkan kriteria tertentu. Teks yang dipisahkan
akan menjadi data array dengan sendirinya.
Contoh :

6. Fungsi Implode
Fungsi ini untuk menggabungkan isi dalam array menjadi satu string dan dipisahkan
menggunakan katakter tertentu.
Contoh :

6
Pertemuan 6 Web Programming
2017 Lukman Fakih Lidinillah
PHP

7. Fungsi Split
Fungsi ini untuk memisahkan array ataupun text menggunakan batasan argumen
eksprsi.
Contoh :

8. Fungsi Strlen
Fungsi ini untuk menghitung jumlah karakter pada suatu string.
Contoh :

7
Pertemuan 6 Web Programming
2017 Lukman Fakih Lidinillah
PHP

9. Fungsi Count
Fungsi ini untuk menghitung jumlah data dalam array.
Contoh :

10. Fungsi SizeOf


Fungsi ini untuk fungsinya sama dengan fungsi count().
Contoh :

11. Fungsi StrtoLower


Fungsi ini untuk mengubah seluruh string menjadi huruf kecil/lower case.
Contoh :

12. Fungsi StrtoOupper


Fungsi ini untuk mengubah string menjadi huruf kapital semua / upper case.
Contoh :

13. Fungsi UcFirst


Fungsi ini untuk mengubah huruf bertama kalimat menjadi kapital / upper case.
Contoh :

14. Fungsi UcWords


Fungsi ini untuk mengubah huruf bertama katat menjadi kapital / upper case.
Contoh :

8
Pertemuan 6 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Selain fungsi-fungsi bawaan PHP yang sudah dibahas diatas, sebenarnya masih banyak fungsi-fungsi
lain yang sudah disediakan oleh PHP, maka dari itu untuk lebih mendalam mengenai fungsi-fungsi
bawaan PHP silahkan kunjungi situs resminya yaitu : http://php.net/

9
Pertemuan 6 Web Programming
2017 Lukman Fakih Lidinillah
PHP

FUNCTION ( FUNGSI BUATAN )

A. Apa itu Function / Fungsi PHP?


Dalam merancang kode program, kadang kita sering membuat kode yang melakukan tugas
yang sama secara berulang-ulang, seperti membaca tabel dari database, menampilkan
penjumlahan, dan lain-lain. Tugas yang sama ini akan lebih efektif jika dipisahkan dari
program utama, dan dirancang menjadi sebuah fungsi.

Fungsi (atau Function) dalam bahasa pemograman adalah kode program yang dirancang
untuk menyelesaikan sebuah tugas tertentu, dan merupakan bagian dari program utama.
Kita dapat membuat fungsi sendiri, atau menggunakan fungsi yang dibuat oleh programmer
lain.

Dalam dunia pemograman terdapat istilah ‘lazy progamming’ yang artinya bukanlah
programmer yang malas. Tetapi, daripada membuat kode program umum dari dasar, kita
bisa menggunakan fungsi yang telah dibuat oleh programmer lain. PHP bahkan menyediakan
ribuan fungsi bawaan yang tersedia untuk membantu kita dalam merancang program.

Mengetahui cara penggunaan fungsi ini akan menghemat waktu pembuatan program dan
membuat kode program menjadi lebih efisien. Lazy programming is smart programming.

B. Apa itu Argumen dan Parameter dalam Fungsi


Sebuah fungsi dalam memproses data, kadang memerlukan beberapa inputan atau nilai
masukan. Inputan inilah yang dimaksud dengan argumen. Sebuah fungsi bisa membutuhkan
1, 2, atau 5 argumen, namun bisa juga tidak memerlukan argumen sama sekali.

Parameter adalah sebutan lain untuk argumen. Perbedaannya, parameter merujuk kepada
inputan fungsi pada saat pendefenisian fungsi tersebut, dan agrumen adalah sebutan untuk
inputan fungsi pada saat pemanggilan fungsi. Kita akan membahas perbedaan Argumen dan
Parameter secara lebih dalam pada tutorial selanjutnya, namun pada dasarnya argumen
dan parameter merujuk kepada hal yang sama, yaitu inputan kepada fungsi dan kedua istilah
ini sering dipertukarkan.

C. Bagaimana Cara Membuat Fungsi


1. Pendefinisian Fungsi
Sebuah fungsi dapat didefinisikan dengan menggunakan sintaks seperti berikut:

2. Fungsi dengan Argumen


Informasi dapat dikirimkan ke fungsi melalui daftar argumen, list argument sendiri
dipisahkan oleh koma, sedangkan Argumen akan dievaluasi dari kiri ke kanan.

10
Pertemuan 6 Web Programming
2017 Lukman Fakih Lidinillah
PHP

PHP juga mendukung melewatkan argument yang bernilai default, melewatkan refrensi,
dan nilai-nilai argument default.

Contoh 1 melewatkan array ke function

Contoh 2 melewatkan parameter function dengan refrensi

Contoh 3 melewatkan parameter default di function

3. Nilai Kembalian (returning Value)


Nilai dikembalikan (returned) dengan menggunakan statement (pernyataan) “return”.
Setiap jenis (type) dapat dikembalikan (di returned), termasuk array dan objek.

Contoh 1 Penggunaan return :

Contoh 2 Mengembalikan array untuk mendapatkan beberapa nilai :

11
Pertemuan 6 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Contoh 3 mengembalikan refrensi dari function

4. Fungsi dengan variable


PHP mendukung konsep fungsi variable. Ini berarti jika sebuah variable dengan nilai
terntu lalu anda menambahkan tanda kurung buka dan tutup pada variable tersebut
maka PHP akan mencari nama fungsi yang sesuai dengan isi variable tersebut.
Contoh 1 :

D. Teknik Penggunaan Fungsi


1. Pemanggilang Fungsi dari dalam fungsi
Sekalipun tidak diharapkan ini terjadi karena dapat menyebabkan kesulitan dalam
proses pelacakan error program atau debugging, namun PHP membolehkan untuk
memanggil fungsi dari dalam fungsi.

Contoh :

12
Pertemuan 6 Web Programming
2017 Lukman Fakih Lidinillah
PHP

2. Fungsi di dalam fungsi


Fungsi di dalam fungsi ini untuk lebih jelasnya dapat dilihat pada potongan source code
dibawah ini :
Contoh :

13
Pertemuan 7 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

BEKERJA DENGAN DATABASE MYSQL


DENGAN FUNGSI ANTARMUKA MYSQL & MYSQLi

A. Create New Database ( Membuat Database Baru )


Ada dua cara untuk membuat database baru :
1. Menggunakan PHPmyAdmin
Perhatikan langkah-langkah dibawah ini untuk membuat database baru dari
PHPmyAdmin.
a. Setelah kita masuk pada PHPmyAdmin (http://localhost/phpmyadmin) klik pada
tombol tab Database, seperti gambar dibawah ini :

b. Langkah kedua, ketikkan nama Database yang akan anda buat pada column no 1,
lalu tekan create :

1
Pertemuan 7 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

2. Menggunakan CMD
a. Langkah pertama, kita masuk terlebih dahulu ke Mysql, seperti gambar berikut :

b. Ketikkan script berikut untuk membuat database baru.


mysql>create database mydatabase;

B. Create Connection ( Membuat Koneksi Database )


Jika database sudah kita buat, langkah berikutnya adalah membuat koneksi dari PHP ke
Mysql.
a. Membuat koneksi database dengan antarmuka mysql
1) Dengan script biasa
Buat file baru dengan nama koneksi_biasa.php, dan ketikkan script dibawah ini :

2
Pertemuan 7 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

Contoh koneksi menggunakan ekstensi mysql :

Contoh koneksi menggunakan ekstensi mysqli (Object Oriented):

Contoh koneksi menggunakan ekstensi mysqli (Procedural) :

2) Membuat koneksi menggunakan function


Buat file baru dengan nama koneksi_function.php, dan ketikkan script berikut :

Contoh menggunakan ekstensi mysql:

3
Pertemuan 7 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

Contoh menggunakan ekstensi mysqli :

3) Dengan class
Buat file baru dengan nama koneksi_class.php, dan ketikkan source ini :

b. Membuat koneksi database dengan antarmuka mysqli


1) PHP biasa
Buat file dengan nama koneksi_biasa_mysqli.php, lalu ketikkan script di bawah ini :

2) Function
Buat file dengan nama koneksi_function_mysqli.php, lalu ketikkan script
di bawah ini :

4
Pertemuan 7 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

3) Class
Buat file dengan nama koneksi_class_mysqli.php, lalu ketikkan script di bawah ini :

C. Create New Table ( Membuat Table Baru )


a. Menggunakan API Mysql
1) PHP biasa
Buka file koneksi_biasa.php dan tambahkan script berikut :

5
Pertemuan 7 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

2) Function
Buka file koneksi_function.php dan ktikkan script dibawah ini :

3) Class
Buka file koneksi_class.php dan tahmbahkan script dibawah ini :

6
Pertemuan 7 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

b. Menggunakan API Mysqli


1) PHP biasa
Buka kembali file koneksi_class_mysqli.php lalau tambahkan cocokkan script
sebelumnya dengan script dibawah ini :

2) Function
Selanjutnya buka kembali file koneksi_function_mysqli.php lalu tambahkan
beberapa script yang belum seperti script dibawah ini :

7
Pertemuan 7 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

3) Class
Yang terakhir yaitu mysqli dengan class, buka file koneksi_class_mysqli.php lalu
tambahkan script sehingga seperti script dibawah ini :

8
Pertemuan 7 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

9
Pertemuan 7.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP

Function MYSQ and MYSQLi

A. MYSQL

No Antarmuka Fungsi
1 Mysql_affected_rows Mengambil jumlah data yang terbaru setelah perintah
MYSQL sebelumnya
2 Mysql_change_user Menggantikan nama user pada saat login untuk koneksi
yang aktif
3 Mysql_client_encoding Mengembalikan tipe karakter, misal. Latin 1 dll. Dari
MYSQL
4 Mysql_close Menutup koneksi MYSQL yang sedang aktif.
5 Mysql_connect Membuat koneksi dengan MYSQL yang membutuhkan
proses penutupan database (gunakan mysql_close).
6 Mysql_create_db Membuat database baru pada MYSQL
7 Mysql_data_seek Memindahkan pointer ke baris berikutnya. Sintaks ini
sangat bermanfaat ketika kita akan menampilkan data
dengan menggunakan fungsi for..loop.
8 Mysql_db_name Mengambil nama database dari daftar yang diberikan
oleh mysql_list_db();
9 Mysql_db_query Menggunakan database dan melakukan proses query.
Perintah ini sudah tidak digunakan lagi, sebagai
alternatif gunakan perintah mysql_select_db dan
mysql_query. (JANGAN MENGGUNAKAN FUNGSI INI ).
10 Mysql_drop_db Digunakan untuk menghapus database pada server
11 Mysql_errno Menampilkan nomor kode kesalahan
12 Mysql_error Menampilkan pesan kesalahan dalam bentuk teks.
13 Mysql_fetch_array Menampilkan data perbaris dan pinter akan berpindah
ke baris berikutnya sampai seluruh data ditampilkan.
Fetch array, dapat digunakan untuk menampilkan data
menggunakan nama field atau nomor field
14 Mysql_fetch_assoc Sama seperti msyql_fetch_array, namun untuk
mengakses data menggunakan nama field.
Pertemuan 7.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP

15 Mysql_fetch_field Digunakan untuk menampilkan seluruh informasi /


properti dari filed yang ada pada database.
16 Mysql_fetch_length Mengembalikan panjang karakter dari seluruh filed
database.
17 Mysql_fetch_object Menampilkan data perbaris dan pointer akan berpindah
ke baris berikutnya. Dimana data yang dikembalikan
dalam bentuk object. Gunakan mysql_fetch_object(),
dalam membuat proses looping. Untuk mengakses filed
gunakan model member objek, yaitu
$baris->nama_matakuliah.
18 Mysql_fetch_row Sama seperti mysql_fetch_array, namun untuk
mengakses data menggunakan nomor field.
19 Mysql_field_flags Akan mengembalikan nilai flags atau spesifikasi dari
field, misal. Not null, primary key, binary dll.
20 Mysql_field_len Akan memberikan nilai kembalian berupa panjang dari
setiap field yang ada
21 Mysql_field_name Untuk mengambil nama dari filed yang ditentukan.
22 Mysql_field_seek Untuk mengatur posisi pointer pada offset dan field
yang ditentukan.
23 Mysql_field_table Mengembalikan nama table dari field yang ditentukan.
24 Mysql_field_type untuk menentukan type dari field yang ditentukan.
25 Mysql_free_result Untuk menghapus data yang ada di memory untuk
proses lainnya.
26 Mysql_get_client_info Untuk mendapatkan informasi dari versi MySQL client.
27 Mysql_get_host_info Untuk menampilkan deskripsi / detail dari tipe koneksi
yang digunakan pada saat koneksi termasuk nama
server host.
28 Mysql_get_proto_info Untuk mendapatkan protocol dam ditampilkan.
29 Mysql_get_server_info Untuk medapatkan info server
30 Mysql_info Untuk menampilkan informasi lengkap tentang query
yang diakses terakhir.
Pertemuan 7.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP

31 Mysql_insert_id Untuk mendapatkan ID yang dibentuk oleh


Auto_increment pada saat terakhir kali melakukan
insert query.
32 Mysql_list_dbs Untuk mengambil seluruh daftar database yang ada
pada mysql yang sedang aktif.
33 Mysql_num_fileds Untuk mengambil jumlah field dari proses query.
34 Mysql_num_rows Mengambil jumlah baris / data dari proses query.
35 Mysql_pconnect Untuk membuat koneksi dengan database secara tetap.
Hail ini berbeda dengan mysql_connect(), di mana
setiap kali proses query selesai maka secara otomatis
koneksi harus ditutup dengan menggunakan
mysql_close(). Sedangkan pada mysql_pconnect(), kita
tidak perlu melakukan proses penutupan koneksi
karena koneksi ini akan terbuka terus sepanjang aplikasi
ini dijalankan. Menggunakan msyql_colse() pada
koneksi mysql_pconnect(), tidak bermanfaat atau tidak
berfungsi.
36 Mysql_ping Untuk melakukan proses pemeriksaaan apakah koneksi
keserver masih berlangsung atau tida.
37 Mysql_query Mengirimkan query kedalam database yang aktif.
38 Mysql_real_escape_string Digunakan untuk mengamankan data sebelum
melakukan proses query atau pengiriman ke database
mysql. Sintak ini harus digunakan dengan beberapa
sintak lainnya yaitu, get_magic_quotes_string() atau
stripslashes(), sehingga dapat mencegah proses SQL
Injection.
39 Mysql_result Digunakan untuk mengambil data pada cell atau baris
tertentu dari hasil pengolahan query mysql.
40 Mysql_select_db Untuk memilih database yang digunakan.
41 Mysql_start Untuk menampilkan status server yang sedang aktif.
Pertemuan 7.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP

42 Mysql_table_name Digunakan untuk menampilkan nama table yang ada


pada database yang aktif. Fungsi ini sudah tidk disukai
lagi, dan dapat diganti dengan mysql_query().
43 Mysql_thread_id Untuk menampilkan id proses dari mysql.
44 Mysql_unbuffered_query Digunakan untuk mengirimkan query ke mysql dan
secara otomatis data hasilnya tidak disimpan atau
dikumpulkan dalam bentuk array. Sehingga anda harus
langsung melakukan proses selanjutnya, tanpa harus
menunggu proses sql selesai. Fungsi ini tidak
menyebabkan penggunaan memory yang besar jika kita
bekerja dengan jumlah data yang banyak.
Pertemuan 7.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP

B. MYSQLi

Function Description

mysqli_affected_rows() Returns the number of affected rows in the previous MySQL


operation

mysqli_autocommit() Turns on or off auto-committing database modifications

mysqli_change_user() Changes the user of the specified database connection

mysqli_character_set_name() Returns the default character set for the database


connection

mysqli_close() Closes a previously opened database connection

mysqli_commit() Commits the current transaction

mysqli_connect_errno() Returns the error code from the last connection error

mysqli_connect_error() Returns the error description from the last connection error

mysqli_connect() Opens a new connection to the MySQL server

mysqli_data_seek() Adjusts the result pointer to an arbitrary row in the result-set

mysqli_debug() Performs debugging operations

mysqli_dump_debug_info() Dumps debugging info into the log

mysqli_errno() Returns the last error code for the most recent function call

mysqli_error_list() Returns a list of errors for the most recent function call

mysqli_error() Returns the last error description for the most recent
function call

mysqli_fetch_all() Fetches all result rows as an associative array, a numeric


array, or both

mysqli_fetch_array() Fetches a result row as an associative, a numeric array, or


both

mysqli_fetch_assoc() Fetches a result row as an associative array

mysqli_fetch_field_direct() Returns meta-data for a single field in the result set, as an


object
Pertemuan 7.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP

mysqli_fetch_field() Returns the next field in the result set, as an object

mysqli_fetch_fields() Returns an array of objects that represent the fields in a


result set

mysqli_fetch_lengths() Returns the lengths of the columns of the current row in the
result set

mysqli_fetch_object() Returns the current row of a result set, as an object

mysqli_fetch_row() Fetches one row from a result-set and returns it as an


enumerated array

mysqli_field_count() Returns the number of columns for the most recent query

mysqli_field_seek() Sets the field cursor to the given field offset

mysqli_field_tell() Returns the position of the field cursor

mysqli_free_result() Frees the memory associated with a result

mysqli_get_charset() Returns a character set object

mysqli_get_client_info() Returns the MySQL client library version

mysqli_get_client_stats() Returns statistics about client per-process

mysqli_get_client_version() Returns the MySQL client library version as an integer

mysqli_get_connection_stats() Returns statistics about the client connection

mysqli_get_host_info() Returns the MySQL server hostname and the connection


type

mysqli_get_proto_info() Returns the MySQL protocol version

mysqli_get_server_info() Returns the MySQL server version

mysqli_get_server_version() Returns the MySQL server version as an integer

mysqli_info() Returns information about the most recently executed query

mysqli_init() Initializes MySQLi and returns a resource for use with


mysqli_real_connect()

mysqli_insert_id() Returns the auto-generated id used in the last query

mysqli_kill() Asks the server to kill a MySQL thread


Pertemuan 7.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP

mysqli_more_results() Checks if there are more results from a multi query

mysqli_multi_query() Performs one or more queries on the database

mysqli_next_result() Prepares the next result set from mysqli_multi_query()

mysqli_num_fields() Returns the number of fields in a result set

mysqli_num_rows() Returns the number of rows in a result set

mysqli_options() Sets extra connect options and affect behavior for a


connection

mysqli_ping() Pings a server connection, or tries to reconnect if the


connection has gone down

mysqli_prepare() Prepares an SQL statement for execution

mysqli_query() Performs a query against the database

mysqli_real_connect() Opens a new connection to the MySQL server

mysqli_real_escape_string() Escapes special characters in a string for use in an SQL


statement

mysqli_real_query() Executes an SQL query

mysqli_reap_async_query() Returns the result from async query

mysqli_refresh() Refreshes tables or caches, or resets the replication server


information

mysqli_rollback() Rolls back the current transaction for the database

mysqli_select_db() Changes the default database for the connection

mysqli_set_charset() Sets the default client character set

mysqli_set_local_infile_default() Unsets user defined handler for load local infile command

mysqli_set_local_infile_handler() Set callback function for LOAD DATA LOCAL INFILE command

mysqli_sqlstate() Returns the SQLSTATE error code for the last MySQL
operation

mysqli_ssl_set() Used to establish secure connections using SSL

mysqli_stat() Returns the current system status


Pertemuan 7.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP

mysqli_stmt_init() Initializes a statement and returns an object for use with


mysqli_stmt_prepare()

mysqli_store_result() Transfers a result set from the last query

mysqli_thread_id() Returns the thread ID for the current connection

mysqli_thread_safe() Returns whether the client library is compiled as thread-safe

mysqli_use_result() Initiates the retrieval of a result set from the last query
executed using the mysqli_real_query()

mysqli_warning_count() Returns the number of warnings from the last query in the
connection
Pertemuan 8.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

CRUD PHP MYSQL

MENGGUNAKAN EXTENTION MYSQLi

Pada pembahasan kali ini akan membahas tentang CRUD ( Create, Read, Update, Delete) data pada
database menggunakan PHP.

Sebelum kita lanjutkan pembahasan CRUD, kita terlebih dahulu membuat table dalam database yang
sudah kita buat(mydatabase). Buatlah table dengan nama “tb_member” dengan field “username
(varchar 20, primary key), password (varchar 32), email (varchar 50), tingkat_user(enum :
‘admin’,’user’)”. Langkah selanjutnya adalah menyusun folder untuk menampung file-file yang
diperlukan. Untuk lebih rinci tentang tb_member dapat dilihat pada gambar dibawah ini :

Susunan field dalam table member

Jika tb_member beserta fieldnya sudah selesai dibuat, maka langkah selanjutnya adalah belajar
penataan folder project. Penataan folder ini berguna untuk mempermudah dalam pengerjaan suatu
project nantinya. Untuk susunan folder dapat dilihat pada gambar dibawah ini :

Gambar Susunan Folder

Keterangan :

 Buatlah sebuah folder utama dengan nama folder “projectweb”


 Didalam folder “projectweb” kita buat juga beberapa folder yaitu
o Folder “administator”

1
Pertemuan 8.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

Didalam folder administator kita buat beberapa folder lagi yaitu:


 Folder “file_data”
Folder ini akan menyimpan proses-proses yang ada di halaman admin.
 Folder “style_admin”
Folder untuk menampung style dari halaman admin.
o Folder “conf” : folder untuk penampungan file-file configurasi aplikasi, seperti untuk
koneksi dll. Jadi untuk configurasi koneksi database yang sudah kalian buat
simpanlah atau pindahkan pada folder config ini. Dan rename nama file koneksinya
dengan nama “connection.php” atau sesuai selera kalian (harus diingat sendiri
karena tutorial selanjutnya nama file koneksi akan diberinama connection.php :D )
o Folder “utama”
Folder Utama digunakan jika sistem yang akan dirancang selain ada halaman admin
juga ada halaman Utama, jadi file-file prosesnya di tempatkan dalam folder ini.

Setelah susunan folder tahap awal sudah dilakukan maka tahap selanjutnya adalah membuat
susunan folder untuk menampung file-file php pada administator, yang dapat dilihat pada gambar
dibwah ini :

Keterangan:

 Buatlah sebuah folder didalam folder “administator -> file_data” dengan nama folder
“member” dan buat sebuah folder lagi didalam folder “administator-> file_data -> member”
dengan nama folder “controllers” dan “views”.
 Kedua buah folder “controllers & views” adalah untuk menampung file php nantinya.
Controllers untuk file control sedangkan views untuk file php yang ditujukan untuk
ditampilkan pada client.

2
Pertemuan 8.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

Tahap penyusunan folder sudah selesai, selanjutnya adalah membuat file-file untuk proses CRUD.
Oke, langsung saja kita kerjakan tahap demi tahap dibawah ini.

1. INSERT DATA
Setelah folder selesai dibuat selanjutnya kita akan membuat sebuah form untuk insert ke
database, buatlah file php baru dengan nama “form_member.php” dan simpan pada folder
member/views, dengan rincian seperti dibawah ini :

Form name form type Form action


member post ../controllers/member_controllers.php
Inpu type Input name Input value Ket

Type : text username


Type : password
password
Type : text email
Type : radio tingkat_user admin,user Default : user

Type : submit simpan Simpan

Full code :

3
Pertemuan 8.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

Gambar ful code form_member.php

Code diatas adalah untuk membuat form inputan untuk member. Hasil dari code diatas dapat dilihat
pada gambar dibawah ini :

Form input member

4
Pertemuan 8.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

Langkah berikutnya adalah membuat controllers dari form diatas. Buatlah satu buah file php dengan
nama member_controllers.php lalu simpan di dalam folder “../member/controllers/”. Berikut script
didalam folder member_controllers.php.

Full Code :

Keterangan :

 Baris kedua adalah pemanggilan konfigurasi koneksi ke database dalam hal ini diberi nama
connection.php dan file tersebut terdapat pada folder “conf”.
 Baris ke 4 adalah pemanggilan variable “opsi” dengan method GET, kenapa GET? Karena
pada form insert member diatas kita mengguanakan tanda-tanya (?) pada variable opsi
“?opsi=input”.
 Baris ke-5 adalah pengecekan value atau isi yang dikirim melalu variable “opsi”, apakah
valuenya berisi input atau yang lain.
 Jika kondisi benar pada baris ke-5 maka baris ke-6 sampai ke-9 adalah penangkapan variable
dengan method POST yang dikirim dari form insert tadi.
 Baris 11 adalah proses query to database untuk insert data ke mysql denga data dari form
insert diatas yang sudah ditampung pada variable “$username, $password” dst.
 Baris 13 adalah pengecekan apakah insert ke mysql sukses atau tidak.

5
Pertemuan 8.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

Gambar proses insert data member ke database “sukses”

2. SELECT DATA
Jika insert data sudah sukses, langkah selanjutnya adalah menampilkan data dari database
ke browser. Sebelum itu kita buat terlebih dahulu file php dengan nama list_member.php
dan simpan dalam folder ”../member/views/”.

Full code :

Source code list_member.php

Keterangan :

6
Pertemuan 8.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

 Baris ke-1 proses include koneksi


 Baris 4-7 adalah membentuk header table
 Baris 9 membuat query untuk mengambil data dari table “tb_member”
 Baris 10-23 adalah proses looping untuk menampilkan data yang telah sukses diambil dari
database
 Baris 18 membuat tombol edit untuk menampilkan form edit, dengan data yang dikirim
adalah username, karena username sebagai kunci pada table tb_member. Sedangkan pada
baris 19 untuk membuat tombol delete, dengan data yang dikirim adalah username, karena
username sebagai kunci pada table tb_member.

Hasil :

Hasil dari list_member.php

3. DELETE DATA
Delete data adalah peroses untuk menghapus data pada database dengan kriteria tertentu
sesuai kunci table yang dikirim. Untuk membuatnya buka terlebih dahulu file dengan nama
“member_controllers.php” yang terdapat pada folder “member->controllers” dan
tambahkan potongan code dibawah ini.
Full code :

7
Pertemuan 8.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

Potongan source code delete

Keterangan :

 Pada proses delete sederhana ini dibutuhkan beberapa code saja untuk membuatnya, yaitu
hanya pada baris 18-22. Untuk baris-baris yang diatas penjelasannya sama dengan proses
input yang sudah dijelaskan diatas.
 Baris 18 adalah cek kondisi yang dikirim melalui method get dalam hal ini adalah variable
“opsi” -> ?opsi=delete.
 Baris 19 adalah mengambil data dari method GET juga yang dikirim melalui URL dengan
nama variable “id” atau seperti yang terdapat pada url “?opsi=delete&id=lukman”
 Baris 20 adalah proses query delete dengan kententuan delete sesuai data yang dikirim yang
sudah ditampung pada variable “id”
 Baris 21 adalah fungsi header untuk me-redirect kembali pada file list_member.php

4. EDIT & UPDATE DATA


Buatlah form terlebih dahulu untuk edit data, buat file php baru dengan nama
edit_member.php dan simpan dalam folder “../member/views/”.

8
Pertemuan 8.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

Full code :

Keterangan :
 Pada list_member.php terdapat tombol atau link untuk menampilkan form edit dengan data
kunci yang dikirim adalah username yang ditampung pada variable “id” atau “&id”.

9
Pertemuan 8.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

 Baris 3 adalah proses query pengambilan data dalam database sesuai dengan ketentuan
(key) yang dikirim melalui url yang ditampung dalam variable “id”
 Baris 6 adalah proses parsing dalam bentuk objek dari data yang didapat dalam database.
 Baris 7-9 adalah pembuatan variable dari data yang diambil berdasarkan nama field masing-
masing
 Baris 12-51 adalah pembuatan form untuk edit data. pada setiap input text terdapat value,
diamana setiap masing-masing value dari input diisi sesuai dengan variable yang sudah
dibuat pada baris 7-9 dan berikut juga opsi radio button.

Agar data dari form edit dapat disimpan pada database maka bukalah file member_controllers.php
yang terdapat pada folder “member->controllers” dan tambahkan kode berikut ini :
Full code :

Gambar code update data


Keterangan :
 Baris 25 adalah untuk cek variable “opsi” yang dikirim dengan method “GET” apakah berisi
“update” atau tidak
 Jika kondisi pada baris 25 benar maka baris 26-30 adalah proses pendeklarasian variable
yang dikirm melalui method POST (name setiap inputan di form edit)
 Baris 31 adalah kondisi jika password dikosongkan (artinya password tidak dirubah). Jika
bernilai true atau benar maka proses query update data akan dieksekusi tapi tanpa update
password, karena password tidak diisi dengan artian password tidak akan dirubah.

10
Pertemuan 8.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

 Jika kondisi 31 bernilai false (artinya inputan password diisi), maka proses query akan
melibatkan field password, sebab maksud dari password diisi adalah untuk dirubah.

TUGAS :

Buatlah proses CRUD untuk tb_menu dengan struktur table seperti dibawah ini :

Nama Field Tipe Field Panjang Field Keterangan


idmenu Integer 5 Auto increment, primary key
nmmenu Varchar 50
link Varchar 50
aktif Enum Y,N
urutan Integer 25

Catatan
 Tugas harus diselesaikan pada hari minggu setelah UTS dan contoh diatas harus diselesaikan
juga.
 Harus teliti ketika mencoba contoh diatas, karena banyak jebakan.
 Goodluck, dan selamat mengerjakan.

11
Pertemuan 8.2 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

CRUD PHP MYSQL Part 2

MENGGUNAKAN EXTENTION MYSQLi

Modul pertemuan 8 part 2 masih akan menjelaskan tentang CRUD, akan tetapi CRUD kali ini sedikit
berbeda dengan CRUD pertemuan 8 part 1 karena pada CRUD kali ini kita akan membahas
bagaimana membuat editor untuk sebuah posting.

Seperti tahapan pada CRUD pertemuan part 1 yaitu langkah pertama adalah membuat table baru
dengan nama tb_news dengan rincian table seperti terliha pada gambar dibawah.

Table news ini digunakan untuk menampung postingan berita-berita yang nantinya akan di
tampilkan pada halaman utama.

Nama Field Tipe Field Panjang Field Keterangan


id_news Int 11 Primary key, auto increment
news_title Varchar 150
news_post_by Varchar 20
news_image Text
news_image_title Text
news_content Long Text
news_post_date Date

Susunan field dalam table news (tb_news)

selanjutnya adalah tahap pembuatan folder atau direktori untuk news, seperti terlihat pada gambar
dibawah ini :

Gambar Susunan Folder news

1
Pertemuan 8.2 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

Keterangan :

 Keterangan sama dengan modul 8 part 1 pada proses pembuatan atau penyusunan folder

Tahap penyusunan folder sudah selesai, selanjutnya adalah membuat file-file untuk proses CRUD.
Oke, langsung saja kita kerjakan tahap demi tahap dibawah ini.

1. INSERT DATA
Setelah folder selesai dibuat selanjutnya kita akan membuat sebuah form untuk insert ke
database, buatlah file php baru dengan nama “form_news.php” dan simpan pada folder
news/views, dengan rincian seperti dibawah ini :

Form name form type Form action


member post ../controllers/member_controllers.php
Inpu type Input name Input value Ket

Type : text news_title


Type : text news_post_by
Textarea news_content
Type : date news_post_date
Type : submit posting Posting

2
Pertemuan 8.2 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

Full code :

Gambar ful code form_news.php

Keterangan :

 Baris 1-27 adalah code untuk membuat form input news(berita)


 Baris 29 pemanggilan file jquery
 Baris 35-50 untuk membuat editor posting, dalam hal ini menggunakan library tinymce.
 Baris 36 adalah proses setup pertama untuk membuat editor posting dengan menggunakan
selector dari textarea pada form.
 Baris 37 adalah list plugins dari editor.
 Baris ke 42 & 43 untuk membuat pintasan toolbar seperti pada gambar dibawah ini

3
Pertemuan 8.2 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

 Baris 47-49 adalah untuk mengintegrasikan library upload filemanager dengan editor
tinymce, selain itu pada baris 40 dan 43 library filemanager harus di deklarasikan agar proses
integrasinya berjalan lancar.
 Pada baris 47 terdapat potongan code “/projectweb/filemanager/” adalah untuk
mendeklarasikan path dari library filemanager
 Pada bars 49 terdapat potongan code “/projectweb/filemanager/plugin.min.js” adalah untuk
memanggil plugin dari library filemanager.
 Tidak hanya keterangan diatas yang harus perhatikan untuk menjalankan editor tinymce
secara maksimal seperti pada website-website cms terkemuka (seperti wordpress), akan
tetapi kita harus mengupload atau menaruh file-file library tinymce dan filemanager pada
project yang kita buat.
 Pertama kita harus upload pada server / kita taruh pada project kita(kalau dilokal) file-file
library tinymce dan filemanager yang sudah didapat didownload pada drive modul ini.
Buatlah sebuah direktori baru pada folder projectweb dengan nama “assets”. Pada folder
“assets” buatlah folder baru dengan nama “js”.
 Setelah folder assets dibuat maka ekstraklah file yang diownload (tinymce.zip) di dalam
folder “assets” dan pastikan setelah folder tinymce tidak lagi ada nama folder tinymce.
Seperti gambar dibawah ini :

 Selanjutnya downloadlah file “jquery-2.1.1.min.js” yang terdapat pada drive materi dan
move (copy – paste) pada folder “assets->js” bukan “assets->tinymce->js”. Seperti gambar
dibawah in:

4
Pertemuan 8.2 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

 Masih belum selesai proses pembuatan editor dengan integrasi filemanager. Langkah
selanjutnya adalah downloadlah library filemanager dan esktrak di folder root (di folder
paling awal) dalam hal ini dibawah direktori projectweb.

 Masih belum selesai sampai disini, buatlah satubuah direktori / folder pada folder
root(projectweb) dengan nama folder “uploads”. Dan buatlah dua buah folder didalam
folder uploads dengan nama folder “source” dan “thumbs”, seperti yang terlihat pada
gambar dibawah ini :

 Masih berlanjut di filemanager, bukalah folder “filemanager->config”. Dalam folder tersebut


terdapat satu buah file php dengan nama config.php. pada file config.php pastikan
settingannya seperti gambar berikut ini :

5
Pertemuan 8.2 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

 Jika proses setting config.php sudah beres maka editor tinymce yang berintegrasi dengan
filemanager sudah siap digunakan. Hasil dari setting – setting diatas dapat dilihat pada
gambar dibawah ini :

6
Pertemuan 8.2 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

Tahapan berikutnya adalah proses penyimpanan data news (berita) ke database dalam hal ini table
yang bersangkutan adalah tb_news. Buatlah file baru dalam folder “news->controllers” dengan
nama file “news_controllers.php”. berikut code dalam file tersebut:

Full Code :

7
Pertemuan 8.2 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

Keterangan :

 Proses insert ke tb_news tidak jauh beda dengan proses sebelumnya hanya saja ada sedikit
perbedaan pada baris 13 terdapat code “$db->real_escape_string()”. Code tersebut
digunakan untuk menghandle inputan dari content berita agar dapat tersimpan maksimal
pada database, sebab dalam kontent berita sering terdapat karakter-karakter yang sering
menyebabkan proses insert ke database menjadi error seprti contoh karakter petik ” ‘ “.
Denga adanya fungsi tersebut proses posting berita tidak akan bermasalah dengan karakter-
karakter khusus.

2. SELECT DATA
Seperti tahapan-tahapan sebelumnya, tahpan ini adalah untuk menampilkan data dari
tb_news dalam bentuk list. Baik, langsung kita buatkan saja sebuah file dengan nama
list_news.php didalam folder ”../news/views/”.
Full code :

Source code list_news.php

Keterangan :
 Untuk penjelasan code ibid pada modul sebelumnya. Satu baris saja yang dibahas pada
keterangan ini yaitu pada baris 17 terdapat dua fungsi “htmlentities()” dan “substr()”. Fungsi
htmlentities() digunakan untuk menghadle data yang berbau code HTML, javascript, ataupun

8
Pertemuan 8.2 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

yang lainnya. Data yang sudah difilter dengan htmlentities meskipun data tersebut
mengandung tag html dll akan dibaca tag biasa seperti gambar dibawah ini :

 Sedangkan fungsi substr() adalah fungsi string untuk memotong kalimat yang panjang,
diaman data akan dipotong sesuai keinginan.

3. DELETE DATA
Delete data adalah peroses untuk menghapus data pada database dengan kriteria tertentu
sesuai kunci table yang dikirim. Untuk membuat delete news (berita), maka buka terlebih
dahulu file dengan nama “news_controllers.php” yang terdapat pada folder “news-
>controllers” dan tambahkan potongan code dibawah ini.
Full code :

Potongan source code delete

Keterangan : keterangan untuk proses delete sama dengan modul sebelumnya

9
Pertemuan 8.2 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

4. EDIT & UPDATE DATA


Buatlah form terlebih dahulu untuk edit data, buat file php baru dengan nama
edit_news.php dan simpan dalam folder “../news/views/”.

Full code :

Agar data dari form edit dapat disimpan pada database maka bukalah file news_controllers.php yang
terdapat pada folder “news->controllers” dan tambahkan kode berikut ini :
Full code :

10
Pertemuan 8.2 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

TUGAS :

Buatlah proses CRUD untuk tb_page dengan struktur table seperti dibawah ini :

Nama Field Tipe Field Panjang Field Keterangan


id_page Integer 5 Auto increment, primary key
page_menu_name Varchar 50
page_content_title Varchar 50
page_content Long Text
page_url Text

Buatlah proses CRUD untuk tb_event dengan struktur dibawah ini

Nama Field Tipe Field Panjang Field Keterangan


id_event Integer 5 Auto increment, primary key
event_title Varchar 150
event_content Long Text
event_date_start Datetime
event_date_end Datetime

11
Pertemuan 8.2 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

event_place Varchar 100


event_audience Varchar 200
event_contact Integer 12

Catatan
 Tugas harus diselesaikan pada hari minggu berikutnya beserta contoh yang terdapat di
modul ini .
 Harus teliti ketika mencoba contoh diatas, karena banyak jebakan.
 Goodluck, dan selamat mengerjakan.

12
Pertemuan 8.3 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

CRUD PHP MYSQL

MENGGUNAKAN EXTENTION MYSQLi

Modul pertemuan 8 part 3 ini akan membahasa CRUD untuk uploading gambar pada server yang
akan digunakan untuk slider. Baik langsung saja, untuk membuat CRUD slider ini dibutuhkan satu
table dengan nama tb_slider dan satu buah folder dengan nama “slider_folder” pada root folder
untuk lebih jelasnya dapat dilihat pada kolom dibawah ini:

Nama Field Tipe Field Panjang Field Keterangan


id_slider Int 11 Primary key, auto increment
slider_image text
slider_title Varchar 100
slider_content Text

Susunan field dalam table slider (tb_slider)

selanjutnya adalah tahap pembuatan folder atau direktori untuk slider, seperti yang telah dilakukan
pada modul-modul sebelumnya.

1. INSERT DATA
Setelah folder selesai dibuat selanjutnya kita akan membuat sebuah form untuk insert ke
database, buatlah file php baru dengan nama “form_slider.php” dan simpan pada folder
slider/views, seperti dibawah ini :

1
Pertemuan 8.3 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

Full code :

Gambar ful code form_news.php

Tahapan berikutnya adalah proses penyimpanan data slider ke database dalam hal ini table yang
bersangkutan adalah tb_slider. Buatlah file baru dalam folder “slider->controllers” dengan nama file
“slider_controllers.php”. berikut code dalam file tersebut:

Full Code :

2. SELECT DATA
Seperti tahapan-tahapan sebelumnya, tahpan ini adalah untuk menampilkan data dari
tb_news dalam bentuk list. Baik, langsung kita buatkan saja sebuah file dengan nama
list_slider.php didalam folder ”../slider/views/”.

2
Pertemuan 8.3 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

Full code :

Source code list_slider.php

3. DELETE DATA
Delete data adalah peroses untuk menghapus data pada database dengan kriteria tertentu
sesuai kunci table yang dikirim. Untuk membuat delete slider, maka buka terlebih dahulu file
dengan nama “slider_controllers.php” yang terdapat pada folder “slider->controllers” dan
tambahkan potongan code dibawah ini.
Full code :

3
Pertemuan 8.3 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

Potongan source code delete

4. EDIT & UPDATE DATA


Buatlah form terlebih dahulu untuk edit data, buat file php baru dengan nama
edit_slider.php dan simpan dalam folder “../slider/views/”.

Full code :

4
Pertemuan 8.3 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi

Agar data dari form edit dapat disimpan pada database maka bukalah file slider_controllers.php
yang terdapat pada folder “slider->controllers” dan tambahkan kode berikut ini :
Full code :

5
Pertemuan 10 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

MEMBUAT CONTENT DINAMIS SEDERHANA

Pada Bab sebelumnya telah dibahas tentang bagaimana proses CRUD dengan database Mysql.
Sedangkan pada bab ini kita akan membahas bagaimana cara membuat content dinamis. Ada
beberapa script / syntax pada bab sebelumnya yang perlu dirubah dan juga ada beberapa tambahan
lain.

1. Membuat Helper Base URL


Buatlah File baru dengan nama BaseURL.php dan simpan pada directory “/conf/”, lalu
ketikkan source dibawah ini :

Penjelasan :

Ada dua buah fungsi baru yang terdapat didalam file koneksi_biasa.php :

a. Function base url


Fungsi ini digunakan agar link-link terkontrol dengan rapi, maksud kata-kata “terkontrol”
disini artinya, untuk mencegah terjadinya kesalahan link disebabkan kesalahan, ketidak
telitian memberi link dll.
b. Function getContent
Fungsi ini digunakan untuk men-generate link ke file2 tertentu yang akan dituju, misalkan
ada sebuah link yang merujuk ke action update dalam hal kasus ini adalah
update_member.php maka fungsi ini akan membaca link url dan mencari file tersebut di
dalam folder. Dengan adanya fungsi ini maka aplikasi yang kita buat sudah lumayan
dinamis.

1
Pertemuan 10 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

2. Membuat admin.php
Selanjutnya kita akan membuat halaman admin untuk administator dengan nama
“admin.php” dan simpan pada direktory “projectweb/administator/, berikut script
lengkapnya:

Penjelasan : script yang diberi garis merah nomor 1 untuk membut link menu, sedangkan
garis merah kedua untuk including content_admin.php.
Content diatas belum menggunakan atau integrasi css dan js.
3. membuat file content_admin.php
Di dalam file index.php terdapat include file yaitu content_admin.php, apa sih gunanya?
Gunanya adalah untuk memfilter link-link dan akan dikirim pada funsi ( function ) yang
terdapat di dalam file BaseURL.php, lebih tepatnya ( function getContent ). Untuk scriptnya
bisa dilihat dibawah ini :

2
Pertemuan 10 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

4. Perubahan pada form_member.php, edit_member.php, list_member.php


Tak banyak perbuahan yang terjadi di dalam 3 file tersebut, perubahan hanya pada link-link
action saja. Ok lansung kita lihat apa saja perubahan-perubahan tersebut, dan dirubah
menjadi apa?
a. form_member.php
script awal :

3
Pertemuan 10 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

4
Pertemuan 10 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Perubahan : terletak pada script yang diberi garis merah, selain yang diberi tanda
semua sama.

b. edit_member.php
Script Awal :

Ada dua perubahan didalam file edit_member.php yaitu include koneksi dan action form

5
Pertemuan 10 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Perubahan include koneksi dan action form dapat dilihat pada gambar dibawah ini.

c. list_member.php
Script Awal :

Perubahan terdapat pada include koneksi dan link delete dan edit, untuk perubahan
dapat dilihat pada gambar dibawah ini :

6
Pertemuan 10 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

5. Perubahan pada file member_controllers.php sama dengan sebelumnya, yaitu pada action
( link-link nya ) saja seperti contoh berikut.

Selamat Mencoba
Catatan : semua yang terdapat file_data harus disesuaikan seperti
step-step diatas

7
Pertemuan 11 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

KOLABORASI DENGAN DESAIN BOOTSTRAP PART I

Pada pertemuan kali ini kita akan membahas bagaimana mempercantik website kita dengan
mengkolaborasikan terhadap desain bootstrap. Sebelum membahas kolaborasi desain terlebih dahulu
download dan ekstrak file yang sudah saya disediakan dengan nama file boostrap_free.rar. jika
ekstraksi selesai maka step selanjutnya adalah men-copy-kan semua folder yang terlihat pada hasil
ekstrasi tadi (kecuali file html) kedalam folder projectweb/administator/style_admin/. Carilah file html
dengan nama form-basic.html pada hasil ekstraksi dari file rar dan copy – pastekan file tersebut
kedalam folder projectweb/administator/, lalu rename file tersebut dengan nama admin.php, untuk
lebih jelasnya dapat melihat gambar dibawah ini :

Gambar 1 Form-basic.html

1
Pertemuan 11 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Gambar 2 copy-paste di folder projectweb/administator

Gambar 3 ganti nama file

Setelah rename file sudah selesai dilakukan maka buka file admin.php tersebut dan kita mulai lakukan
perubahan. Perubahan pertama adalah meng-include-kan file koneksi dan BaseURL.

Gambar 4 include file

Konfigurasi atau editing selanjutnya adalah menambah beberapa code pada link css dan js (script load
js terdapat pada baris code terbawah) yang di load.

Gambar 5 modifikasi link load file css dan js

2
Pertemuan 11 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Gambar 6 modifikasi link load file js

Jika sudah selesai modifikasi link js dan css maka tekan ctrl+f pada editor kalian dan ketikkan dalam
pencarian dengan keyword <! - - main area - ->, untuk apa? Agar mempermudah pencarian. Pencarian
ini dilakukan untuk memodifikasi content yang akan ditempati data-data dinamis nantinya.

Gambar 7 pencarian <! - - main area - ->

Jika main area suda ditemuakan langkah selanjutnya adalah mencari tag komentar dengan keyword
<!- - bottom footer - -> untuk apa ? untuk menentukan batas akhir kontent. Setelah keduanya
ditemukan maka hapus semua kode diantara keduanya, dan gantikan kode yang terlihat pada gambar
dibawah ini.

Gambar 8 kode baru untuk kontent

Beres sudah modifikasi kontent baru, agar lebih meyakinkan boleh kita coba pada browser dengan
mengetikkan http://localhost/projectweb/administator/admin.php .

3
Pertemuan 11 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Gambar 9 hasil modifikasi kontent

Setelah konten sukses maka kita akan melihat ada semacam bottom di kanan monitor, itu sangat
mengganggu karena tidak terlalu dibutuhkan, bagaimana menghilangkannya? Caranya adalah buka
kembali file admin.php dan scroll sampai paling bawah, dan cari baris kode load main.js, jika sudah
ditemukan maka carilah lokasi file dengan melihat arah link tersebut (lokasi berada di style-
_admin/scripts/). Bukalah file tersebut menggunakan editor masing-masing dan scroll kode sampai
paling bawah dan hapuslah beberapa kode seperti gambar 13.

Gambar 10 button di kanan monitor

Gambar 11 mencari lokasi file main.js

4
Pertemuan 11 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Gambar 12 open main.js menggunakan editor

Gambar 13 menghapus beberapa baris kode.

Catatan : jika tombol di kanan monitor masih tetap coba clear cookie dan image pada browser masing-
masing.

Masih berlanjut modifikasi desain, selanjutnya adalah menampilkan gambar pada profile user yang
terdapat pada pojok kiri atas monitor, bagaimana caranya? Buka kembali file admin.php dan lakukan
modifikasi kembali. Carilah kode seperti gambar 15 dan pastikan lakukan modfikasi link agar laod
image dapat berjalan dengan benar.

5
Pertemuan 11 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Gambar 14 gambar tidak muncul pada profil user

DAN

Gambar 15 modifikasi link image beserta logo.

Gambar 16 hasil dari modifikasi image dan logo pada inf.user

Selanjutnya bagaimana memodifikasi sidebar-menu agar sesuai dengan data dalam database
(dinamis). Pertama seperti biasa kita ctrl+f dan carilah tag komentar dengan keyword <! - - apps - ->

6
Pertemuan 11 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Dan keyword <! - - menu levels - -> seperti terlihat pada gambar 18. Hapus seluruh code yang terdapat
diantar dua tag tersebut, dan gantikan menjadi code baru seperti pada gambar 19.

Gambar 17 menu asli bawaan boostrap (akan dimodifikas).

DAN

Gambar 18 searching kode tag komenar <! - - apps - -> dan <! - - menu levels - ->

7
Pertemuan 11 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Gambar 19 kode baru setelah kode lama dihapus.

Nah masih di modifikasi sidebar-menu kita lanjutkan membuat menu memuncul ikon yang manis juga
link dan nama menu sesuai dengan data yang ada pada database? Seperti terliha pada gambar 20,
maka edit beberapa kode sesuai pada gambar 21.

Gambar 20 hasil menu cantik dan sesuai dengan database

Gambar 21 kode modifikasi menu dinamis

8
Pertemuan 11 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Gambar 22 custome_style di database( menyesuaikan dengan icon-icon pada bootstrap ini ).

Next, kembali pada profile user, pada pojok kiri atas monitor, dimana nama tersebut masih statis, kita
ingin nama tersebut dinamis sesuai dengan nama user yang login, maka kita modifikasi nama tersebut
seperti gambar 23.

Gambar 23 nama user sesuai dengan user yang login

Pembahasan kita sudah mulai jauh, semoga tidak tambah bingung (i hope). Oke lanjut, kita akan
melanjutkan pada pembahasan login, logout, dan redirect jika user sudah login ataupun logout. Buka
kembali folder ektraksi file rar tadi dan carilah file html dengan nama extra-signin.html dan seperti
biasa copy-pastekan file tersebut kedalam folde projectweb/administator/ dan rename menjadi
login.php

9
Pertemuan 11 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Gambar 24 file extra-signin.html

Gambar 25 rename file

Gambar 26 Modifikasi link css seperti pada file admin.php

10
Pertemuan 11 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Gambar 27 modifikasi link js (dan menghapus beberapa baris kode dibawah link js).

Gambar 28 modifikasi link logo login.

Setelah selesai modifikasi link logo maka hapus kode-kode yang tidak diperlukan sehingga hasilnya
seperti gambar 29.

11
Pertemuan 11 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Gambar 29 Form login Clear.

Terakhir pada form login, tambahkan beberapa kode PHP seperti gambar 30, proses redirect berhasil.

DAN

Gambar 30 kode PHP untuk cek sesi dan redirect dan hasil form login

12
Pertemuan 11 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Berlajut pada tahap lain, kita buat file baru dengan nama index.php dan isikan beberapa kode PHP
seperti pada gambar 31 untuk handle sesi user jik mencoba kembali ke awal link.

Gambar 31 Membuat File Index.php

Gambar 32. Kode PHP pada file Index.php

Form login tidak akan berjalan jika tanpa kontrol, dimana kontrol disini bertugas mencocokkan inputan
username dan password yang di masukkan oleh user dan dibandingkan pada data yang terdapat pada
database. Pada kontrol login ini (salah satunya), semua “mastah” (julukan bagi maser) seluruh trik di
kerahkan, tirak apa? untuk apa? Trik pengamanan web dari segi login, agar tidak gampang di bobol
oleh orang hebat yang tidak bertanggung jawan (hacker jahat). Oke cukup bahas bobol membobol dan
orang hebat itu. Kita akan membahas kontrol untuk form login tersebut, so buatlah file baru sejajar
dengan index, admin, login dengan nama logincontrol.php dan ketikkan beberapa kode dalam file
tersebut seperti pada gambar 33.

13
Pertemuan 11 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Gambar 33 Kode pada file logincontrol.php

Jika file login control sudah beres, maka selanjutnya kita kembali lagi ke file admin ( kok bolak balik
terus ya?  ) yah begitulah,, emang pusing,, tapi asik kalu tahu  . jadi kita kembali lagi pada file
admin.php dan lakukan sedikit modifikasi pada bagian atas setelah include file, untuk lebih jelasnya
dapat melihat gambar 34.

Gambar 34 Modifikasi admin.php

Nah sekarang sudah pada sampai tahap final, yaitu logout. Wah ini code paling simple mungki menurut
saya . Baik lajut kita buat file baru dengan nama logout.php dan ketikkan beberapa baris kode seperti
pada gambar 35 dan beressssssssss....

Gambar 35 kode logout.php

14
Pertemuan 11 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Percobaan login

15
Pertemuan 11 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

to be continued on "Kolaborasi Part II"


Selamat mencoba semoga berhasil dan barokah ilmunya.
Amiin...

16
Pertemuan 12 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

KOLABORASI DENGAN DESAIN BOOTSTRAP PART II

Berlanjut dari modul 11 tentang kolaborasi part 1 dimana pada modul tersebut penjelasan
terakhir adalah sampai pada login, logout, dan logincontrol. Pada modul ini yang akan dibahas
adalah bagaimana membuat kontent pada halaman admin menjadi dinamis ( content yang
ditampilkan sesuai dengan menu yang di klik). Oke lansung kita bahas, langkah pertama
adalah kita masuk ke folder projectweb/administator/ dan cari file content_admin.php jika
belum ada silahkan buat file baru dan beri nama content_admin.php seperti terlihat pada
gambar 1. Setelah membuat file content_admin.php bukalah file tersebut berikut juga file
admin.php.

Gambar 1 Content_admin.php

Jika keduanya sudah dibuka maka pada file admin.php carilah tag komentar dengan keyword
<! - - main area - - > ( lihat gambar 2 ) dan hapus beberapa code yang sudah dibuat pada
module 11 dan keitikkan 1 baris kode baru seperti terlihat pada gambar 3.

1
Pertemuan 12 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Gambar 2 baris kode di admin.php

Gambar 3 include content_admin.php di dalam admin.php

Jika hal diatas sudah dilakukan, maka buka kembali file content_admin.php dan ketikkan
kode seperti terlihat pada gambar 4.

2
Pertemuan 12 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Gambar 4 Full code content_admin.php

Nah sampai disini content halaman admin kita sudah dinamis, tapi tampilannya masih hancur.
Well, selanjutnya kita akan edit satu persatu form, list dan edit pada views di setiap folder
file_data.

Pertama kita akan memodifikasi form, sebagai contoh adalah form_menu.php. bukalah file
tersebut dan tambahkan beberapa baris kode baru tepat diatas tag <form> seperti terlihat
pada gambar 5. Setelah beberapa baris kode ditambahkan, pastikan pada semua tag form
baik form itu sendiri ataupun input pastikan sudah terdapat class seperti terlihat pada gambar
5. Dalam modifikasi form ini kita tidak akan atau akan meninggalkan table sebagai desain
form, penggunaan table dicukupkan pada tampilan list data saja. Sebagai ganti dari
menghilangkan table maka gantilah tag tr dan td menjadi tag div dan label dengan class yang
sesuai pada gambar 5.

3
Pertemuan 12 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Gambar 5 Modifikasi kode form_menu.php

Lakukan hal tersebut hinggal seluruh elemen form tidak ada table,tr ataupun td. Terakhir
yang diakukan pada form ini adalah menambahkan baris </div> sebanyak 3 kali di akhir form
seperti terlihat pada gambar 6.

Gambar 6 menambahkan penutup div

Jika kita lihat hasil dari modifikasi tersebut di gambar 7, form masih terlihat acak-acakan, apa
penyebabnya? Penyebabnya adalah karena pada bootstrap yang kita pakai elemen form tidak
dibungkus dengan <div></div> tetapi dibungkus dengan <fieldset></fieldset>, maka dari itu
kita rubah tag div lebih tepatnya kata div dengan fieldset sepert terlihat pada gambar 8.

4
Pertemuan 12 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Gambar 7 Hasil dari modifikasi form_menu.php part1

Gambar 8 Modifikasi form_menu.php part2

5
Pertemuan 12 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Gambar 9 Contoh modifikasi div to filedset

Form sudah kita modifikasi, maka selanjutnya adalah kita akan memodifikasi list_menu.php
sebagai contoh dari list lain. Bukalah file list_menu.php dan lakukan modifikasi berikut.

Pertama kita copykan baris teratas dan terbawah dari form_menu.php (kok diajari copas? Ya
biar cepet, kan caranya sudah di rinci di form_menu.php  ) lihat gambar 10, lalu pastekan
di list_menu.php sesuai tempat kode tersebut (jika yang copas dari form_menu.php dari baris
1 maka pastikan di pastekan di list_menu.php di baris 1, begitupun juga pada baris bagian
bawah.

Gambar 10 Copy code dari form_menu.php

6
Pertemuan 12 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Diantara atas dan bawah ( yang di copas dari form_menu.php ) pastikan kodenya sama seperti
pada gambar 11, karena terdapat class-class tambahan. Jangan lupa juga untuk memeriksa
link atau tombol bagian action (untuk edit dan deletenya).

Gambar 11 full kode diantara div yang dicopy dari form_menu.php

Jika hal tersebut sudah dilakukan dengan benar maka tampilan list akan berubah seperti
terlihat pada gambar 12.

Gambar 12 Hasil modifikasi list_menu.php

7
Pertemuan 12 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Catatan : class-class dan div juga susuna desain pada projectweb ini menyesuaikan dengan
bootstrap yang sudah diunduh yaitu boostrap_free.rar.

Step terakhir adalah memodifikasi file edit_menu.php, langkahnya tidak jauh beda, kita main
copas aja dari form_menu.php . Apa yang akan di copas? Langkahnya bagaimana? Apa yang
akan dicopas dan bagaimana cara mengcopas sudah di rinci pada step modifikasi
list_menu.php. Agar tidak bingung modifikasi edit_menu.php dapat dilihat pada gambar 13,
14, 15, 16, 17, dan 18.

Gambar 13 modifikasi edit_menu.php part1

8
Pertemuan 12 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Gambar 14 modifikasi edit_menu.php part2

Gambar 15 modifikasi edit_menu.php part3

9
Pertemuan 12 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Gambar 16 modifikasi edit_menu.php part4

10
Pertemuan 12 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Gambar 17 modifikasi edit_menu.php part5

Gambar 18 modifikasi edit_menu.php part6

11
Pertemuan 12 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

Gambar 19 Hasil dari modifikasi edit_menu.php

Selesai sudah modifikasi content dinamis yang kita inginkan. Untuk step modifikasi menu yang
lain beserta contentnya sama dengan step diatas, diharapkan agar dimodifikasi semua agar
proses pembuatan halaman administator selesai dengan sempurna. Dibawah ini akan
disertakan gambar hasil dari modifikasi dari beberapa menu beserta content yang lain.

12
Pertemuan 12 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

SEKIAN DARI MODUL KOLABORASI DESAIN DENGAN BOOSTRAP PART 2


SEMOGA BERMANFAAT DAN ILMU YANG DIDAPATKAN BAROKAH..
AMIIN.....

to be continued on "Membuat Halaman Front End" Pertemuan 13

13
Pertemuan 13 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

BEKERJA DENGAN LIBRARY – LIBRARY PENDUKUNG

A. Library Konversi Tanggal


Library pertama yang akan kita bahas adalah library untuk mengkoversi tanggal, ini
sangat penting sekali dalam proses pembuatan Applikasi Web, mengapa? Karena data
tanggal yang kita ambil dan terima dari inputan browser ataupun dari database
bertolak belakang. Sebagai contoh, format tanggal pada DB mysql adalah
mendahulukan Tahun Baru diikuti bulan dan tanggal ( ex : 2017-01-01 ), sedangkan
format tanggal kita ( indonesia ) yang familiar tidaklah seperti itu melainkan tanggal
yang didahulukan baru diikuti bulan dan tahun ( ex : 01-01-2017 ). Maka dari itu perlu
adanya library khusus menangani konversi tanggal tersebut, agar kita tidak
kewalahan, harus membuat format bolak balik di setiap ada tanggal, dimana konversi
ini tidaklah hanya 1-3 baris saja kode yang dibutuhkan. Pada Tabel 1 adalah Full kode
dari library konversi tanggal, dan hasilnya dapat kita lihat pada gambar 1.

Tabel 1 Full kode library konversi tanggal (fungsikonversitanggal.php )


1 <?php
2 //untuk mengetahui bulan bulan
3 if ( ! function_exists('bulan'))
4 {
5 function bulan($bln)
6 {
7 switch ($bln)
8 {
9 case 1:
10 return "Januari";
11 break;
12 case 2:
13 return "Februari";
14 break;
15 case 3:
16 return "Maret";
17 break;
18 case 4:
19 return "April";
20 break;
21 case 5:
22 return "Mei";
23 break;
24 case 6:
25 return "Juni";
26 break;
27 case 7:
28 return "Juli";
29 break;

1
Pertemuan 13 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

30 case 8:
31 return "Agustus";
32 break;
33 case 9:
34 return "September";
35 break;
36 case 10:
37 return "Oktober";
38 break;
39 case 11:
40 return "November";
41 break;
42 case 12:
43 return "Desember";
44 break;
45 }
46 }
47 }
48
49 //format tanggal yyyy-mm-dd
50 if ( ! function_exists('tgl_indo'))
51 {
52 function tgl_indo($tgl)
53 {
54 $ubah = gmdate($tgl, time()+60*60*8);
55 $pecah = explode("-",$ubah); //memecah variabel
56 berdasarkan -
57 $tanggal = $pecah[2];
58 $bulan = bulan($pecah[1]);
59 $tahun = $pecah[0];
60 return $tanggal.' '.$bulan.' '.$tahun; //hasil akhir
61 }
62 }
63
64 //format tanggal timestamp
65 if( ! function_exists('tgl_indo_timestamp')){
66
67 function tgl_indo_timestamp($tgl)
68 {
69 $inttime=date('Y-m-d H:i:s',$tgl); //mengubah format menjadi
70 tanggal biasa
71 $tglBaru=explode(" ",$inttime); //memecah berdasarkan spaasi
72
73 $tglBaru1=$tglBaru[0]; //mendapatkan variabel format yyyy-mm-dd
74 $tglBaru2=$tglBaru[1]; //mendapatkan fotmat hh:ii:ss
75 $tglBarua=explode("-",$tglBaru1); //lalu memecah variabel
76 berdasarkan -
78
79 $tgl=$tglBarua[2];
80 $bln=$tglBarua[1];
81 $thn=$tglBarua[0];
82
83 $bln=bulan($bln); //mengganti bulan angka menjadi text dari
84 fungsi bulan
85 $ubahTanggal="$tgl $bln $thn | $tglBaru2 "; //hasil akhir
86 tanggal
87

2
Pertemuan 13 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

88 return $ubahTanggal;
89 }
90 }
91 ?>

Pejelasan :
1. Dalam library ini terdapat 3 fungsi, fungsi pertama adalah menjabarkan nama
bulan agar terdefinisi sesuai bahasa indonesia tetapi bukan untuk menkonversi
tanggal, hanya menjabarkan saja.
2. Fungsi kedua digunakan untuk mengkonversi tanggal format database mysql ke
format tanggal indonesia dengan memanfaatkan penjabaran bulan pada fungsi
pertama.
3. Fungsi ketiga adalah untuk menkonversi tanggal database yang berformat
timestamp ke format tanggal indonesia dengan memanfaatkan fungsi pertama.
Gambar 1 Hasil dari library konversi tanggal

Gambar 1.1 Memanggil library konversi tanggal di admin.php

Gambar 1.2 Pemakaian library konversi tanggal ( ex : pada list event )

3
Pertemuan 13 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

B. Library Membuat Report PDF


Library yang kedua ini juga sangat sering akan kita jumpai saat mendevelpe sebuah
website, apalagi website sisem keuangan, penjualan dsb., itu sangat membutuhkan
sekali library ini untuk membuat sebuah report. Ada banyak library untuk membentuk
PDF beberapa diantaranya adalah TCPDF, FPDF, HTML2PDF, dan MPDF, semua library
tersebut bertujuan untuk membuat report yang nantinya bisa dicetak ataupun
diunduh pada local komputer. Pada praktikum kali ini kita akan menggunakan library
HTML2PDF. Kalau kita gali lebih dalam sebenarnya HTML2PDF adalah pengembangan
dari TCPDF, karena HTML2PDF membutuhkan fungsi-fungsi dari TCPDF. Mengapa
pada praktikum kali ini HTML2PDF yang terpilih? Alasan pertama adalah karena bisa
membuat report dari tag HTML dimana dengan menggunakan tag HTML kita lebih
mudah mendesain report yang dibutuhkan, selain HTML2PDF sebenarnya MPDF juga
dapat mecetak dari tag HTML, tetapi menurut “pengalaman” HTML2PDF lebih mudah
untuk dijadikan sebagai ajang belajar. Baik, penjelasan singkat dan padat dari library-
libarry report sudah dilakukan maka, kita akan mulai mencoba membuat report
menggunakan HTML2PDF. Step pertama yang harus dilakukan adalah mengunduh file
library tersebut yang sudah disediakan, dan ekstraklah library tersebut (karena dalam
bentu .rar/zip). Setelah ekstrak selesai maka copykan seluruh library tadi pada dan
pastekan di folder projectweb/library/html2pdf/ seperti terlihat pada gambar 2.
Selanjutnya adalah kita akan membuat contoh report sebagai sample kita ambil satu
tabel yaitu tabel member yang akan kita buatkan reportnya, maka yang perlu

4
Pertemuan 13 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

dilakukan adalah membuat 2 buah file baru didalam folder


projectweb/administator/file_data/member/views, dengan masing-masing diberi
nama cetak_html.php dan cetak_pdf.php. cetak_html.php digunakan untuk
mendesain reportnya menggunakan html ( full kode, lihat tabel 2 ), sedangkan
cetak_pdf.php digunakan untuk membuat report dengan memanggil library html2pdf
yang sudah kita pilih ( full kode, lihat tabel 3). Untuk memanggil dua buah file tadi, kita
buatkan link sejajar dengan tombol tambah pada content member di halaman
administator (lihat gambar 3 untuk membuat link cetak). Setelah sukses, hasil dapat
dilihat pada gambar 4.

Tabel 2 Full kode cetak_html.php


1 <style>
2 .table{
3 width:100%;
4 margin:auto;
5 }
6 .table th {
7 width:25%;
8 background:#333;
9 color:white;
10 font-family:arial;
11 font-size:13px;
12 text-transform:capitalize;
13 padding:5px;
14 }
15 .table .no_th {
16 width:5%;
17 background:#333;
18 color:white;
19 font-family:arial;
20 font-size:13px;
21 text-transform:capitalize;
22 padding:5px;
23 }
24 .table td {
25 color:black;
26 font-family:arial;
27 font-size:11px;
28 text-transform:normal;
29 padding:5px;
30 border: 0.2px solid #333;
31 }
32 </style>
33 <?php
34 include "../../../../conf/connection.php";
35 echo "<table class='table' cellpadding='0' cellspacing='0'>
36 <thead>

5
Pertemuan 13 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

37 <tr>
38 <th
39 class='no_th'>No</th><th>Username</th><th>Email</th><th>Tingkat
40 User</th>
41 </tr>
42 </thead>
43 <tbody>";
44 // ambil data dari database
45 $q = $db->query("select * from tb_member");
46 $no = 1;
47 while($r = $q->fetch_array()){
48 echo "<tr class='odd pointer'>
49 <td class='no_td'>".$no."</td>
50 <td>".$r['username']."</td>
51 <td>".$r['email']."</td>
52 <td>".$r['tingkat_user']."</td>
53 </tr>";
54 $no++;
55 }
56 echo "</tbody></table>";
57 ?>

Penjelasan :
Pada file ini kita akan me-layout bentuk laporan dengan HTML dan css agar hasilnya
lebih baik.
Tabel 3 Full kode cetak_pdf.php
1 <?php
2 ob_start();
3 include "cetak_html.php";
4 $content = ob_get_clean();
5
6 require_once("../../../../library/html2pdf/html2pdf.class.php");
7 try
8 {
9
10 $html2pdf = new HTML2PDF('P','A4', 'en', false, 'ISO-8859-
11 15',array(20,5,20,10));
12 $html2pdf->writeHTML($content, isset($_GET['vuehtml']));
13 $html2pdf->Output('Cetak Laporan Member.pdf');
14 }
15 catch(HTML2PDF_exception $e) { echo $e; }
16 ?>

Penjelasan :
1. Baris no 2, adalah untuk menghidupkan Output Buffering.
2. Baris no 3, memanggil cetak_html.php dan ditampung dalam buffer.
3. Baris no 4, mengambil isi cetak_html.php

6
Pertemuan 13 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

4. Baris 6 memanggil library html2pdf yang sudah di copas pada folder library
5. Baris 10 membuat objek baru dari class library HTML2PDF dengan format kertas
“P” = Portait dan “A4” = type kertas.
6. Baris 12 menusilkan isi dari cetak_html.php yang disimpan didalam buffer untuk
dijadikan PDF.
7. Baris 13 menampilkan PDF ketika sudah selesai menulis, dengan nama file PDF
sesuai keingingan kita

Gambar 3 membuat link cetak pada content list member

Gambar 4 Hasil dari pembuatan report

7
Pertemuan 13 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

C. Library Membuat Auto File & Folder


Jika Anda sudah sering atau pernah menggunakan wordpress maka kalian akan paham
kegunaan library ini. Library ini intinya akan mempermudah kita dalam pembuatan
folder dan file yang sesuai dengan rootmap aplikasi, jadi kita tidak perlu repot-repot
membuat file atau pun folder yang sesuai dengan ketentuan rootmap atau alur
aplikasi, karena folder dan file akan digenarate otomatis. Library ini akan dipakai
keteika akan membuat modul / menu baru, dimana ketika menu / modul baru
dinnputkan maka otomatis program dengan sendirinya membuat folder dan file sesuai
ketentuan alur rootmap aplikasi, jadi library ini sanga berkaitan erat dengan menu
pada praktikum projectweb ini. Agar bisa langsung memperaktekkan, maka lihatlah
full kode pada tabel 5. Setelah library ini dibuat, maka library ini hanya akan dipanggil
pada file menu_controller.php saja. Pada file menu_controller.php terdapat sedikit
perubahan seperti terlihat pada gambar 5.

Tabel 5 Full kode library auto file dan folder (fungsibuatfolder.php )


1 <?php
2 function create_folder_file($dirname){
3 //buatfolder
4 $folder = "file_data/".$dirname;
5 $subfolder_c = "file_data/".$dirname."/controllers";
6 $subfolder_v = "file_data/".$dirname."/views";
7 $file1 = "list_".$dirname.".php";
8 $content1 = '<div class="col-lg-12 col-md-12">
9 <div class="card">
10 <div class="card-header">
11 List ?????
12 <div class="card-controls">
13 <a href="javascript:;" class="card-collapse" data-toggle="card-
14 collapse"></a>
15 </div>
16 </div>
17 <div class="card-block">
18 <?php
19 include "../conf/connection.php";
20 // buat header table
21 echo "<a class=\'btn btn-primary btn-sm\'
22 href=\'admin.php?target='.$dirname.'&action=form\'>Tambah</a><br><b
23 r>";
24 echo "<table class=\'table table-striped responsive-utilities
25 jambo_table bulk_action\'>
26 <thead>
27 <tr>
28 <th></th><th></th><th></th><th></th>

8
Pertemuan 13 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

29 <th></th><th></th><th></th><th>#</th>
30 </tr>
31 </thead>
32 <tbody>";
33 // ambil data dari database
34 $q = $db->query("");
35 $no = 1;
36 while($r = $q->fetch_array()){
37 echo "<tr>
38 <td>".$no."</td>
39 <td>".$r[]."</td>
40 <td>".$r[]."</td>
41 <td>".$r[]."</td>
42 <td>".$r[]."</td>
43 <td>".$r[]."</td>
44 <td>".$r[]."</td>
45 <td>".$r[]."</td>
46 <td>".$r[]."</td>
47 <td>
48 <a class=\'btn btn-success\'
49 href=\'admin.php?target='.$dirname.'&action=edit&id=".$r[]."\'><i
50 class=\'fa fa-edit\'></i></a>
51 <a class=\'btn btn-danger\'
52 href=\'admin.php?target='.$dirname.'&action=delete&id=".$r[]."\'><i
53 class=\'fa fa-remove\'></i></a>
54 </td>
55 </tr>";
56 $no++;
57 }
58 echo "</tbody></table>";
59 ?>
60 </div>
61 </div>
62 </div>';
63
64 $file2 = "form_".$dirname.".php";
65 $content2 = '<div class="col-lg-12 col-md-12">
66 <div class="card">
67 <div class="card-header">
68 Form ????
69 <div class="card-controls">
70 <a href="javascript:;" class="card-collapse" data-toggle="card-
71 collapse"></a>
72 </div>
73 </div>
74 <div class="card-block">
7576 <form method="post"
78 action="admin.php?target='.$dirname.'&action=input" class="form-
79 horizontal form-label-left">
80
81
82 <fieldset class="form-group">
83 <div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3">
84 <input type="submit" class="btn btn-success"
85 value="Simpan">
86 <a class="btn btn-danger"
87 href="admin.php?target='.$dirname.'">Kembali</a>

9
Pertemuan 13 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

88 </div>
89 </fieldset>
90 </form>
91 </div>
92 </div>
100 </div>';
101 $file3 = "edit_".$dirname.".php";
102 $content3 = '<?php
103 include "../conf/connection.php";
104 $query = $db->query("select * from where
105 =\'".$_GET[\'id\']."\'");
106 // menampilkaan hasil query dalam bentuk object
107 // anda bisa juga menggunakan mysql_fetch_assoc atau
108 mysql_fetch_array dll
109
110 $rows = $query->fetch_object();
111 $ = $rows->;
112 $ = $rows->;
113 $ = $rows->;
114 $ = $rows->;
115 $ = $rows->;
116 $ = $rows->;
117 $ = $rows->;
118 $ = $rows->;
119 $ = $rows->;
120
121 ?>
122 <div class="col-lg-12 col-md-12">
123 <div class="card">
124 <div class="card-header">
125 Edit ??????
126 <div class="card-controls">
127 <a href="javascript:;" class="card-collapse" data-toggle="card-
128 collapse"></a>
129 </div>
130 </div>
131 <div class="card-block">
132 <form method="post"
133 action="admin.php?target='.$dirname.'&action=update" class="form-
134 horizontal form-label-left">
135 <fieldset class="form-group">
136 <div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3">
137 <input type="submit" class="btn btn-success"
138 value="Simpan">
139 <a class="btn btn-danger"
140 href="admin.php?target='.$dirname.'">Kembali</a>
141 </div>
142 </fieldset>
143 </form>
144 </div>
145 </div>
146 </div>';
147 $file4 = $dirname."_controllers.php";
148 $content4 = '<?php include \'../conf/connection.php\';
149 $opsi = $_GET[\'action\'];
150 if($opsi == "input"){
151 $db->query("INSERT INTO () VALUES()");

10
Pertemuan 13 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

152 ?>
153 <script>
154 window.location.href=\'admin.php?target='.$dirname.'\';
155 </script>
156 <?php
157 }
158 elseif($opsi == "delete"){
159 $delquery = $db->query("DELETE FROM ");
160 ?>
161 <script>
162 window.location.href=\'admin.php?target='.$dirname.'\';
163 </script>
164 <?php
165 }
166 elseif($opsi == "update"){
167 $db->query("UPDATE SET WHERE ");
168 ?>
169 <script>
170 window.location.href=\'admin.php?target='.$dirname.'\';
171 </script>
172 <?php
173 }';
174 if(is_dir($folder) === false){
175 mkdir($folder);
176 }
177 if(is_dir($subfolder_c) === false){
178 mkdir($subfolder_c);
179 }
180 if(is_dir($subfolder_v) === false){
181 mkdir($subfolder_v);
182 }
183
184 //buat file
185 // di fodler views
186 //list
187 $file_list = fopen($subfolder_v."/".$file1,w);
188 fwrite($file_list,$content1);
189 fclose($file_list);
190 //form
191 $file_form = fopen($subfolder_v."/".$file2,w);
192 fwrite($file_form,$content2);
193 fclose($file_form);
194 //edit
195 $file_edit = fopen($subfolder_v."/".$file3,w);
196 fwrite($file_edit,$content3);
197 fclose($file_edit);
198 //control
199 $file_control = fopen($subfolder_c."/".$file4,w);
200 fwrite($file_control,$content4);
201 }
202
203 function DelFolder($dirname){
204 $dir = "file_data/".$dirname;
205 $dir_c = "file_data/".$dirname."/controllers";
206 $dir_v = "file_data/".$dirname."/views";
207
208 $file_c = array_diff(scandir($dir_c), array('.','..'));

11
Pertemuan 13 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

209 $file_v = array_diff(scandir($dir_v), array('.','..'));


210
211 foreach($file_c as $c){
212 unlink($dir_c."/".$c);
213 }
214 foreach($file_v as $v){
215 unlink($dir_v."/".$v);
216 }
217 rmdir($dir_c);
218 rmdir($dir_v);
219 rmdir($dir);
220 }

Penjelasan :
Gambar 5 Modifikasi pada menu_controller.php ( pada $opsi = input )

Gambar 5.1 Modifikasi pada menu_controller.php ( pada $opsi = delete )

12
Pertemuan 13 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

D. Library Membuat Permalink ( Url Support Search Engine )


Masih pada pembahasan wordpress, pada wordpress artikel yang disuguhkan
memiliki url / link yang cantik, ini akan sangat berpengaruh sekali ketika website yang
akan dibuat akan di arahkan ke publik dan Search Engine ( ex : google, bing, dan
yahoo). Akan tetapi library ini pada praktikum kita kemungkinan dipakai dan tidak,
sebab tidak terlalu krusial dalam proses pembelajarn pemula dalam medevelop
website, tapi tidak ada salahnya jika sebagai pengetahuan tambahan. full kode library
ini dapat dilihat pada tabel 6.
Tabel 6 Full Kode library permalink ( fungsipermalink.php )
1 <?php
2 function buat_permalink($string)
3 {
4 $c = array (' ');
5 $d = array ('-
6 ','/','\\',',','.','#',':',';','\'','"','[',']','{','}',')','(','|','
7 `','~','!','@','%','$','^','&','*','=','?','+');
8 $string = str_replace($d, '', $string);
9 $string = strtolower(str_replace($c, '-', $string));
10 return $string;
11 }
12 ?>

Penjelasan :
1. Pada fungsi atau library ini, semua karakter yang terdapat pada baris 5 – 7 pada
kalimat akan di buang, sedangkan karakter spasi pada kalimat akan diganti
menjadi tanda penghubung.

13
Pertemuan 13 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT

E. Library Datatabels.
Comming Soon...
F. Library Untuk Export pada File Excel
Comming Soon...

14

Anda mungkin juga menyukai