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.
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.
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.
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.
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:
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
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.
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 :
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 :
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 :
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.
3
Pertemuan 3 Web Programming
2017 Lukman Fakih Lidinillah
PHP
$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 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 :
5
Pertemuan 3 Web Programming
2017 Lukman Fakih Lidinillah
PHP
Contoh :
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
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:
Contoh :
8. Array Operators
Operator array hampir sama dengan operator pembanding, bedanya operator array
digunakan untuk melakukan operasi terhadap tipe data array. Perhatikan tabel:
=== Identik $a === Benar, bila $a dan $b memiliki key/value yang sama, urutan yang
$b sama, dan bertipe data sama pula
7
Pertemuan 3 Web Programming
2017 Lukman Fakih Lidinillah
PHP
!== 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 :
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
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 :
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.
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:
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.
Contoh :
Contoh :
4
Pertemuan 4 Web Programming
2017 Lukman Fakih Lidinillah
PHP
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.
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:
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.
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.
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.
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
? %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']).
4
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP
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
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.
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
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.
11
Pertemuan 5 Web Programming
2017 Lukman Fakih Lidinillah
PHP
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"];
}
?>
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
<?
Session_start();
// untuk menghapus varable session menggunakan unset()
unset($_SESSION[“count”]);
?>
Output:
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.
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.
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.
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
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
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
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 :
4
Pertemuan 6 Web Programming
2017 Lukman Fakih Lidinillah
PHP
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 :
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 :
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
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.
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.
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.
11
Pertemuan 6 Web Programming
2017 Lukman Fakih Lidinillah
PHP
Contoh :
12
Pertemuan 6 Web Programming
2017 Lukman Fakih Lidinillah
PHP
13
Pertemuan 7 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi
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 :
2
Pertemuan 7 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi
3
Pertemuan 7 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi
3) Dengan class
Buat file baru dengan nama koneksi_class.php, dan ketikkan source 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 :
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
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
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
B. MYSQLi
Function Description
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_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_lengths() Returns the lengths of the columns of the current row in the
result set
mysqli_field_count() Returns the number of columns for the most recent query
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_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
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 :
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 :
Keterangan :
1
Pertemuan 8.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi
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 :
Full code :
3
Pertemuan 8.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi
Code diatas adalah untuk membuat form inputan untuk member. Hasil dari code diatas dapat dilihat
pada gambar dibawah ini :
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
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 :
Keterangan :
6
Pertemuan 8.1 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi
Hasil :
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
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
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 :
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 :
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
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.
selanjutnya adalah tahap pembuatan folder atau direktori untuk news, seperti terlihat pada gambar
dibawah ini :
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 :
2
Pertemuan 8.2 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi
Full code :
Keterangan :
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 :
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 :
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 :
9
Pertemuan 8.2 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi
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 :
11
Pertemuan 8.2 Web Programming
2017 Lukman Fakih Lidinillah
PHP & MYSQL / MYSQLi
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
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:
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 :
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 :
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
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
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.
Penjelasan :
Ada dua buah fungsi baru yang terdapat didalam file koneksi_biasa.php :
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
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
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
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.
Konfigurasi atau editing selanjutnya adalah menambah beberapa code pada link css dan js (script load
js terdapat pada baris code terbawah) yang di load.
2
Pertemuan 11 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT
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.
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.
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
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.
4
Pertemuan 11 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT
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
DAN
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.
DAN
Gambar 18 searching kode tag komenar <! - - apps - -> dan <! - - menu levels - ->
7
Pertemuan 11 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT
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.
8
Pertemuan 11 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT
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.
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
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).
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
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.
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
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.
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....
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
16
Pertemuan 12 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT
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
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
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
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.
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
5
Pertemuan 12 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT
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.
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).
Jika hal tersebut sudah dilakukan dengan benar maka tampilan list akan berubah seperti
terlihat pada gambar 12.
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.
8
Pertemuan 12 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT
9
Pertemuan 12 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT
10
Pertemuan 12 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT
11
Pertemuan 12 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT
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
13
Pertemuan 13 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT
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
3
Pertemuan 13 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT
4
Pertemuan 13 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT
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
7
Pertemuan 13 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT
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
Penjelasan :
Gambar 5 Modifikasi pada menu_controller.php ( pada $opsi = input )
12
Pertemuan 13 Web Programming
2017 Lukman Fakih Lidinillah
PHP MYSQL TINGKAT LANJUT
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