Anda di halaman 1dari 265

2015

PHP
www.duniailkom.com
Copy sebagian dari situs duniailkom.com

ok
Microsoft
10/29/2015

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 13: Mengenal Tipe Data Integer dan Cara
Penulisan Integer dalam PHP
Di dalam tutorial belajar PHP kali ini kita akan mempelajari tipe data integer PHP dan cara penulisan
tipe data integer dalam PHP. Tipe data integer dalam PHP dapat ditulis dalam bentuk desimal,
heksadesimal, oktal, dan biner.

Pengertian Tipe Data PHP


Setelah sebelumnya kita mempelajari tentang pengertian variabel dan pengertian konstanta, dalam
beberapa tutorial ke depan kita akan mempelajari tipe data PHP.
Sebuah variabel atau konstanta merupakan tempat dari data. Di dalam bahasa pemograman (dan
juga PHP), data yang diinput kedalam variabel atau konstanta akan memiliki tipe tertentu. Tipe-tipe
ini nantinya menentukan bagaimana cara kita memprosesnya. Beberapa tipe data terdengar familiar,
seperti tipe data angka, desimal dan text. Namun kita juga akan menemukan tipe data lain
seperti boolean dan array.
Untuk tipe data pertama yang akan dibahas adalah tipe data angka bulat, atau disebut dengan tipe
data Integer.

Pengertian Tipe Data Integer dalam PHP


Tipe data integer adalah tipe data yang berupa angka bulat seperti: 1, 22, dan -172. Tipe data integer
umum digunakan untuk data dengan angka bulat, seperti harga barang, jumlah stock dan jumlah
mahasiswa. Jika data yang kita miliki kemungkinnan akan mengandung pecahan, maka tipe data yang
digunakan adalah float (akan dibahas dalam tutorial berikutnya).
Nilai integer dapat bernilai positif (+) maupun negatif (-). Jika tidak diberi tanda, maka diasumsikan
nilai tersebut adalah positif.
Berikut contoh penulisan bilangan integer dalam PHP:
<?php
$umur=21;
$harga=15000;
$rugi=-500000;
echo
echo
echo
echo
echo

$umur; //21
"<br />";
$harga; //15000
"<br />";
$rugi; //-500000

?>

Untuk variabel dengan angka integer, kita bisa melakukan operasi matematis seperti penambahan,
pengurangan, pembagian dan lain-lain, seperti contoh berikut ini:
<?php
$a=14;
$b=16;
$c= $a + $b;
echo $c; // 30
$d=$a * $b;
echo $d; // 224
?>

1|P a ge

http://www.duniailkom.com_________________________________________________________

Jangkauan angka integer bergantung kepada kemampuan komputasi komputer, namun biasanya
dimulai dari 2,147,483,648 sampai +2,147,483,647, atau 32bit. Jika terdapat menungkinan angka
yang dihasilkan dari kode program kita berada diluar jangkauan ini, sebaiknya menggunakan tipe
data float.
Secara teknis, jangkauan angka integer ini sama dengan jangkauan tipe data LONG pada bahasa C.
Namun dikarenakan bahasa C tidak memberikan spesifikasi khusus seberapa besar jangkauan LONG,
anda mungkin mendapat hasil yang berbeda.
Untuk mengetahui nilai maksimal tipe data integer pada komputer, PHP menyediakan konstanta
PHP_INT_MAX. Berikut adalah hasil nilai PHP_INT_MAX yang saya jalankan:
<?php
print PHP_INT_MAX; // 2147483647
?>

Selain digunakan untuk menampung angka dengan base 10 (disebut juga angka desimal), tipe data
integer digunakan juga untuk menampung angka base 16 (hexadesimal), base 8 (octal), dan base 2
(binary).

Cara Penulisan Angka Hexadesimal Dalam PHP


Angka heksadesimal (atau hexadecimal) adalah angka khusus yang bilangan penyusunnya terdiri
dari 16 digit, yaitu angka 0-9, dan huruf A-F. Angka heksadesimal ini biasanya digunakan untuk
pemrosesan yang berkaitan dengan perhitungan komputer.
Dalam pemograman web kita akan menemukan angka ini pada penulisan kobinasi warna pada CSS.
Sebagai contoh, warna merah ditulis: ff0000, biru: 0000ff, abu-abu: cccccc, dan kombinasi warna
lainnya dalam CSS menggunakan angka heksadesimal.
Untuk membuat sebuah variabel berisi angka heksadesimal, kita menulis huruf 0x (angka 0 dan
huruf x) sebelum angka yang ingin diinput. Karakter 0x menginstruksikan kepada PHP bahwa angka
setelahnya adalah heksadesimal. Misalkan, angka heksadesimal 54FA ditulis dengan0x54FA.
Berikut contoh penulisan bilangan integer heksadesimal dalam PHP:
<?php
$angka_desimal= 31;
$angka_heksadesimal=0x1F; //1F heksadesimal = 31 desimal
echo $angka_desimal; //31
echo "<br />";
echo $angka_heksadesimal; //31

2|P a ge

http://www.duniailkom.com_________________________________________________________
?>

Pada contoh diatas, variabel $angka_desimal dan $angka_heksadesimal sama-sama ditampilkan


dengan nilai 31 (PHP secara tidak langsung mengkonversi nilai $angka_heksadesimal menjadi nilai
desimal).

Cara Penulisan Angka Oktal Dalam PHP


Bilangan oktal adalah bilangan yang terdiri dari 8 digit, yaitu karakter 0-7. Bilangan oktal tidak terlalu
sering digunakan. Untuk menuliskan bilangan oktal ke dalam variabel PHP, kita menggunakan tanda
0 (angka nol) diawal angka. Angka desimal 511 ditulis dalam bentuk oktal777, sehingga
penulisannya dalam PHP menjadi 0777.
Berikut contoh penulisan bilangan integer oktal dalam PHP:
<?php
$angka_desimal= 511;
$angka_oktal=0777; //777 oktal = 511 desimal
echo $angka_desimal; //511
echo "<br />";
echo $angka_oktal; //511
?>

Cara Penulisan Angka Biner Dalam PHP


Bilangan biner (atau binary) adalah bilangan yang terdiri dari 2 digit saja, yaitu 0 dan 1. Prinsip
bilangan biner inilah yang mendasari perhitungan komputer. Bilangan biner kadang disebut juga
dengan bilangan logika, yakni logika benar (ditandai dengan angka 1), dan logika salah (ditandai
dengan angka 0).
Di dalam PHP, angka integer biner ditulis dengan awalan 0b (angka nol, dan huruf b). Nilai desimal222,
dalam notasi biner biner ditulis 11011110, sehingga untuk menyimpannya dalam variabel PHP ditulis
menjadi 0b11011110.
Berikut contoh penulisan bilangan integer biner dalam PHP:
<?php
$angka_desimal= 222;
$angka_biner=0b11011110; //11011110 biner = 222 desimal
echo $angka_desimal; //222
echo "<br />";
echo $angka_biner; //222
?>

3|P a ge

http://www.duniailkom.com_________________________________________________________
Tipe data integer adalah tipe data penting dalam pemograman. Dalam tutorial kali ini kita telah
mempelajari cara penulisan bilangan integer dalam PHP dengan penulisan untuk karakter desimal,
heksadesimal, oktal, dan biner.
Selain tipe data Integer, dalam PHP masih terdapat tipe angka lainnya, yaitu tipe data Floating
Pointatau Float. Dalam tutorial belajar PHP selanjutnya kita akan mempelajari tipe data Float dan Cara
Penulisan tipe data Float dalam PHP.

4|P a ge

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 14: Mengenal Tipe Data Float dan Cara
Penulisan Float dalam PHP
Jika sebelumnya kita telah mempelajari tentang tipe data Integer dalam PHP, kali ini kita akan
membahas tipe data Float, dan cara penulisan tipe data float dalam PHP.

Pengertian Tipe Data Float dalam PHP


Tipe data float (disebut juga tipe data floating point, atau real number) adalah tipe data angka yang
memiliki bagian desimal di akhir angka, atau memiliki floating point (floating point adalah istilah
dalam bahasa inggris untuk menyebut tanda titik yang menandakan bilangan desimal). Contoh
angka float adalah seperti: 0,9 atau 3,14.
Tipe data float cocok digunakan untuk variabel yang akan berisi angka pecahan, seperti nilai IPK, hasil
pembagian, atau hasil komputasi numerik yang angkanya tidak bisa ditampung oleh datainteger.
Sama seperti tipe data integer, jangkauan angka float bergantung kepada komputasi prosessor yang
digunakan, walaupun pada umumnya berupa angka mulai dari 1.7 x 10^-308 sampai
dengan1.7^+308 dengan 15 digit keakuratan. Anda tidak perlu khawatir dengan limit angka float ini,
karena selain untuk membuat aplikasi matematis tingkat tinggi, kita tidak akan menggunakan angka
float sampai 15 digit.

Cara Penulisan Tipe Data Float dalam PHP


PHP mendukung 2 cara penulisan tipe data float, yang pertama yaitu penulisan desimal sehari-hari,
seperti 0.17 atau 9.47 dan yang kedua berupa penulisan format scientific notation, seperti 0.314E1,
atau 12.0E-3.
Penggunaan scientific notation digunakan untuk menyederhanakan penulisan, 0.314E1 adalah sama
dengan 0.314*10^1 atau 3.14, dan 12.0E-3 sama dengan 12.0*10^(-3), atau 0.012.
Berikut contoh penulisan bilangan float dalam PHP:
<?php
$angka_float1= 0.78;
$angka_float2= 14.99;
$angka_scientific1=0.314E1;
$angka_scientific2=0.3365E-3;
echo $angka_float1; // 0.78
echo "<br />";
echo $angka_float2; //14.99
echo "<br />";
echo $angka_scientific1; //3.14

5|P a ge

http://www.duniailkom.com_________________________________________________________
echo "<br />";
echo $angka_scientific2; //0.0003365
?>

Sama seperti tipe data integer, variabel dengan tipe data float juga dapat melakukan operasi numerik
seperti penambahan, pembagian, perkalian, dan lain-lain. Berikut adalah contoh operasi matematis
dengan tipe data float:
<?php
$a=10.66;
$b=12.4;
$c= $a + $b;
echo $c; // 23.06
$d=$a / $b;
echo $d; // 0.85967741935484
?>

Penjelasan lanjutan tentang operasi matematis, akan kita bahas dalam tutorial khusus tentang
operator matematis dalam PHP.
Dalam tutorial belajar PHP ini, kita telah mempelajari tipe data float, atau disebut juga tipe data
floating point atau real number. Selanjutnya kita akan membahas tentang Tipe Data String dan Cara
Penulisan String dalam PHP.

6|P a ge

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 15: Mengenal Tipe Data String dan Cara
Penulisan String dalam PHP
Setelah dalam tutorial PHP sebelumnya kita telah mempelajari 2 tipe data angka, yakni tipe data
integer dan tipe data float, dalam tutorial kali ini kita akan membahas tipe data string, dan cara
penulisannya.

Pengertian Tipe Data String dalam PHP


Tipe data string adalah tipe data yang berisi text, kalimat, atau kumpulan karakter. Sebagai contoh,
a, saya sedang belajar PHP atau tUT0r1al pHp?! semuanya adalah string.
Tipe data string mungkin adalah tipe data yang paling sering digunakan, dan memiliki banyak fitur
yang disediakan PHP. Karakter yang didukung saat ini adalah 256 karakter ASCII. List
karakterASCII tersebut dapat dilihat di http://www.ascii-code.com.

Cara Penulisan Tipe Data String dalam PHP


PHP menyediakan 4 cara penulisan tipe data string, yakni Single Quoted, Double Quoted,Heredoc,
dan Nowdoc. Kita akan mempelajarinya lebih dalam dalam tutorial ini.
1. Penulisan Tipe Data String dengan Single Quoted
Penulisan tipe data string menggunakan single quoted atau tanda petik satu (karakter ) merupakan
cara penulisan string yang paling sederhana. Kita tinggal membuat sebuah kata atau kalimat, dan
menambahkan tanda petik satu di awal dan akhir kalimat.
Untuk string yang didalamnya juga terdapat tanda petik satu, kita harus mendahuluinya dengan
karakter backslash (\) agar tidak dianggap sebagai penutup string. Dan jika di dalam string anda ingin
menulis tanda backslash, kita harus menulisnya dengan 2 kali (\\).
Berikut adalah contoh penulisan tipe data string menggunakan metode single quoted:
<?php
$string1='Ini adalah string sederhana';
$string2='Ini adalah string
yang bisa memiliki beberapa
baris';
$string3='Dia berkata: "I\'ll be back"';
$string4='Anda telah berhasil menghapus C:\\xampp\\htdoc';
$string5='Kalimat ini tidak akan pindah ke: \n baris baru';
$string6='Variabel juga tidak otomatis ditampilkan $string1 dan
$string3';
echo
echo
echo
echo
echo
echo
?>

$string1;
$string2;
$string3;
$string4;
$string5;
$string6;

echo
echo
echo
echo
echo

"<br>";
"<br>";
"<br>";
"<br>";
"<br>";

7|P a ge

http://www.duniailkom.com_________________________________________________________
Jika contoh tersebut dijalankan, berikut tampilannya di browser:

Pada contoh diatas, saya membuat beberapa karakter khusus seperti , \n, dan variabel yang dimulai
dengan tanda dollar ($). Ketiga karakter khusus ini ditampilkan secara karakter aslinya ke dalam
browser.
2. Penulisan Tipe Data String dengan Double Quoted
Cara kedua dalam penulisan tipe data string dalam PHP adalah dengan menggunakan Double
Quoted atau tanda petik dua (karakter ). Walaupun seperti tidak ada perbedaan dengan
menggunakan single quote, hasil yang di dapat akan sangat berbeda.
Dengan double quoted, PHP akan memproses karakter-karakter khusus seperti carriage return (\n),
dan karakter tab (\t) dan juga memproses setiap variabel (yang ditandai dengan tanda $ didepan
kata).
Di karenakan metode double quoted melakukan pemrosesan terlebih dahulu, maka untuk
menampilkan karakter khusus seperti tanda petik (karakter ), tanda dollar (karakter $) dan tandatanda khusus lainnya, kita harus menggunakan backslash (karakter \). Berikut adalah tabel karakter
khusus untuk double quoted string:
Cara Penulisan String

Karakter Yang Ditampilkan

\"

Karakter Tanda petik dua

\n

Karakter Newline

\r

Karakter Carriage return

\t

Karakter Tab

\\

Karakter Backslash

\$

Karakter Dollar Sign

\{

Karakter Pembuka Kurung Kurawal


8|P a ge

http://www.duniailkom.com_________________________________________________________

Cara Penulisan String

Karakter Yang Ditampilkan

\}

Karakter Penutup Kurung Kurawal

\[

Karakter Pembuka Kurung Siku

\]

Karakter Penutup Kurung Kurawal

\0 sampai \777

Karakter ASCII menggunakan nilai oktal

\x0 sampai \xFF

Karakter ASCII menggunakan nilai heksadesimal

Sebagai contoh penggunaan double quoted string, saya akan menggunakan contoh yang sama
dengan single quoted string, agar dapat dilihat perbedaannya:
<?php
$string1="Ini adalah string sederhana";
$string2="Ini adalah string
yang bisa memiliki beberapa
baris";
$string3="Dia berkata: \"I'll be back\"";
$string4="Anda telah berhasil menghapus C:\\xampp\\htdoc";
$string5="Kalimat ini akan akan pindah ke: \n baris baru";
$string6="Variabel akan otomatis ditampilkan: $string1 dan $string3";
echo
echo
echo
echo
echo
echo
?>

$string1;
$string2;
$string3;
$string4;
$string5;
$string6;

echo
echo
echo
echo
echo

"<br
"<br
"<br
"<br
"<br

\>";
\>";
\>";
\>";
\>";

Dan hasil kode PHP tersebut adalah:

9|P a ge

http://www.duniailkom.com_________________________________________________________

Perhatikan perbedaannya pada hasil $string3, $string5 dan $string6.


Pada $string3, kita harus mem-blackslash tanda petik dua karena itu merupakan karakter khusus
dalam double quoted string.
Pada $string5, tanda \n yang merupakan karakter khusus untuk baris baru, tapi karena kita
menampilkannya di browser, karakter ini tidak akan terlihat, tetapi jika kita menulis hasil string ini
kedalam sebuah file text, kalimat tersebut akan terdiri dari 2 baris.
Pada
$string6,
terlihat
bahwa
string
dengan
petik
dua
akan
memproses
variabel $string1 dan$string3 sehingga tampil hasilnya di web browser. Fitur ini akan sangat
bermanfaat jika kita sering menampilkan variabel didalam sebuah string.
3. Penulisan Tipe Data String Dengan Heredoc
Cara penulisan tipe data string yang ketiga yaitu dengan fitur PHP yang disebut heredoc. 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.
Agar lebih jelas, berikut adalah contoh penulisan tipe data string dengan heredoc:
<?php
$IPK=3.9;
$string1 = <<<end
Saya sedang belajar PHP
di duniailkom.com <br />
Kali ini tentang pembahasan
mengenai "PHP", <br /> dan berharap
bisa dapat IPK $IPK :)
end;
echo $string1;
?>

10 | P a g e

http://www.duniailkom.com_________________________________________________________

Mari kita bahas tentang cara penulisan Heredoc.


Seperti yang terlihat dari contoh diatas, fitur Heredoc ditandai dengan tanda <<< untuk memulai
string, lalu diikuti dengan karakter penanda akhir string. Dari contoh tersebut kata end pada awal
string adalah penanda akhir string. Anda bebas mengganti kata end dengan kata atau karakter lain,
sepanjang kata tersebut bisa dijamin tidak akan muncul didalam string.
Setelah karakter penanda string, baris pertama setelahnya adalah awal dari string. String ini dapat
mencakup beberapa baris, sampai ditemukan karakter penanda akhis string yang kita definisikan di
awal (yaitu kata end). Setelah ditemukan karakter penanda akhir string, maka pendefenisian string
berakhir.
Perhatikan juga bahwa di dalam kalimat diatas, saya menggunakan karakter \n dan variabel $IPK.
Seluruh karakter ini diproses oleh PHP, sehingga mirip dengan fitur double quoted string.

4. Penulisan Tipe Data String Dengan Nowdoc


Cara penulisan tipe data keempat dalam PHP yaitu dengan fitur Nowdoc. Fitur ini hampir sama
dengan Heredoc, namun dengan pengecualian: karakter khusus dan variabel tidak akan diproses oleh
PHP, atau mirip dengan single quoted string.
Berikut adalah contoh penulisan tipe data string menggunakan metode Nowdoc:
<?php
$IPK=3.9;
$string1 = <<< 'selesai'
Saya sedang belajar PHP
di \n duniailkom.com <br />
Kali ini tentang pembahasan

11 | P a g e

http://www.duniailkom.com_________________________________________________________
mengenai "PHP", <br /> dan berharap
bisa dapat IPK $IPK :)
selesai;
echo $string1;
?>

Jika dilihat sekilas, tidak ada perbedaan cara penulisan metode nowdoc dengan heredoc, namun
perhatikan karakter penanda akhir string. Kali ini saya menggunakan karakter selesai sebagai
penanda akhir string.
Dan yang membedakannya dengan heredoc adalah, nowdoc
menambahkan single quoted untuk karakter penanda akhir string. Saya menulis selesai
(dengan tanda kutip satu) untuk mengawali string.
Dari tampilan yang dihasilkan, nowdoc memproses string sama dengan single quoted string, dimana
karakter khusus dan variabel tidak diproses sama sekali, sehingga dalam tampilan akhir anda dapat
melihat tanda \n dan variabel $IPK ditulis sebagai string.
Dalam tutorial belajar PHP kali ini kita telah membahas 4 cara penulisan dan pendefenisian tipedata
string, yaitu dengan single quoted, double quoted, heredoc, dan nowdoc. Metode penulisan
string dengan heredoc dan nowdoc mungkin tidak akan sering anda jumpai.
PHP juga menyediakan banyak fitur dan fungsi untuk manipulasi string, salah satunya adalah operasi
yang bisa dilakukan dengan string. Kita akan membahasnya pada Pengertian dan Jenis-jenis Operator
String dalam PHP. Tetapi, jika anda ingin melanjutkan tutorial tentang tipe data, selanjutnya kita akan
membahas tipe data Boolean dalam PHP.

12 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 16: Mengenal Tipe Data Boolean dan
Cara Penulisan Boolean dalam PHP
Pada tutorial belajar PHP kali ini kita akan membahas tentang pengertian tipe data boolean, dan cara
penulisan tipe data boolean dalam PHP.
Pengertian Tipe Data Boolean PHP
Tipe data boolean adalah tipe data paling sederhana dalam PHP dan juga dalam bahasa pemograman
lainnya. Tipe data ini hanya memiliki 2 nilai, yaitu true (benar) dan false (salah).
Tipe data boolean biasanya digunakan dalam operasi logika seperti kondisi if, dan perulangan
(looping). Untuk penggunaan tipe data boolean akan kita pelajari pada waktu membahas tentang
struktur pemograman PHP.

Pengertian Tipe Data Boolean PHP


Tipe data boolean adalah tipe data paling sederhana dalam PHP dan juga dalam bahasa pemograman
lainnya. Tipe data ini hanya memiliki 2 nilai, yaitu true (benar) dan false (salah).
Tipe data boolean biasanya digunakan dalam operasi logika seperti kondisi if, dan perulangan
(looping). Untuk penggunaan tipe data boolean akan kita pelajari pada waktu membahas tentang
struktur pemograman PHP.

Cara Penulisan Boolean dalam PHP


Penulisan boolean cukup sederhana, karena hanya memiliki 2 nilai, yakni true atau false. Penulisan
true atau false ini bersifat non-case sensitif, sehingga bisa ditulis sebagai true, True atau TRUE.
Berikut adalah contoh penulisan tipe data boolean:
<?php
$benar=true;
$salah=false;
echo "benar = $benar, salah = $salah";
// hasil output: benar = 1, salah =
?>

Jika anda menjalankan contoh kode PHP diatas, variabel $benar akan ditampilkan dengan angka 1,
sedangkan variabel $false ditampilkan dengan string kosong (tanpa output). Hal ini karena jika
ditampilkan menggunakan echo, tipe data boolean dipaksa berganti dengan tipe data string. (Lebih
lanjut tentang konversi antar tipe data akan kita dalam Tutorial PHP: Cara Mengubah Tipe Data PHP.

Konversi Tipe Data Lain Menjadi Boolean


Karena PHP adalah loosely tiped language, atau bahasa pemograman yang tidak bertipe,sebuah
variabel dapat di konversi menjadi tipe data lainnya.
Berikut adalah aturan tipe data boolean jika dikonversi dari tipe data lainnya:
Integer 0, dianggap sebagai false.
Float 0.0, dianggap sebagai false.
String kosong () dan string 0 dianggap sebagai false.
Array tanpa elemen, dianggap sebagai false.
13 | P a g e

http://www.duniailkom.com_________________________________________________________

Objek dengan tanpa nilai dan fungsi, dianggap sebagai false.


Nilai null, dianggap sebagai false.
Selain 6 kondisi diatas, sebuah variabel akan dikonversi menjadi true.
Berikut adalah contoh variabel dan nilai konversinya dalam boolean:
<?php
$x
$x
$x
$x
$x
$x
$x
$x
$x
$x
?>

=
=
=
=
=
=
=
=
=
=

FALSE; // false
""; // false
" "; // true
1; // true
-2; // true
"belajar"; // true
3.14; // true
array(); // false
array(12); // true
"false"; // true

Perhatikan beberapa konversi diatas, string (string kosong) dianggap sebagai false, namun string
(string dengan karakter spasi) adalah true. Juga string 0 dianggap false, namun string false
dianggap true.
Kesalahan dalam kode program sering terjadi karena konversi dari tipe data lain menjadi boolean,
sehingga sedapat mungkin kita membuat variabel boolean dengan nilai yang pasti dan tidak
bargantung kepada aturan konversi booelan dari PHP.
Dalam tutorial kali ini, kita telah membahas tentang tipe data boolean PHP serta hasil boolean dari
konversi tipe data lain. Tipe data boolean ini akan banyak digunakan dalam operasi logika seperti if.
Dalam sesi tutorial selanjutnya, kita akan membahas Tipe Data Array dan Cara Penulisan Array dalam
PHP.

14 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 17: Mengenal Tipe Data Array dan Cara
Penulisan Array dalam PHP
Pada tutorial belajar PHP kali ini kita akan membahas tentang tipe data bentukan: Array, serta cara
penulisan array dalam PHP. Namun pada kesempatan ini saya hanya membahas sekilas tentangarray,
karena PHP sendiri memiliki banyak fitur dan fungsi yang dapat digunakan untuk pemrosesan array.
Pembahasan yang lebih lengkap akan saya bahas pada tutorial lainnya.

Pengertian Tipe Data Array


Array (atau larik dalam bahasa indonesia) bukanlah tipe data dasar seperti integer atau boolen,
Array adalah sebuah tipe data bentukan yang terdiri dari kumpulan tipe data lainnya. Menggunakan
array akan memudahkan dalam membuat kelompok data, serta menghemat penulisan dan
penggunaan variabel.
Misalkan kita butuh untuk menyimpan 10 nama mahasiswa, maka kode PHPnya jika tanpa
menggunakan array adalah sebagai berikut:
<?php
$nama0="Andri";
$nama1="Joko";
$nama2="Sukma";
$nama3="Rina";
$nama4="Sari";
//... dst sampai $nama10
?>

Kode PHP seperti diatas tidak salah, tetapi kurang efektif karena kita membuat 10 variabel untuk 10
nama. Bagaimana jika kita butuh 100 nama? maka akan dibutuhkan 100 variabel $nama.
Pembuatan kode program diatas akan lebih rapi jika ditulis kedalam bentuk array, karena kita hanya
membutuhkan 1 buah variabel saja untuk menampung banyak nilai. Berikut adalah contoh
penggunaan array:
<?php
$nama = array (
0=>"Andri",
1=>"Joko",
2=>"Sukma",
3=>"Rina",
4=>"Sari",)
//... dst sampai 10
?>

Cara Penulisan Array dalam PHP


PHP mendukung beberapa cara penulisan array, salah satunya dengan menggunakan konstruktor
array PHP (array language construct) sebagai berikut:
$nama_variabel = array(
key => value,
key2 => value2,
key3 => value3,
...

15 | P a g e

http://www.duniailkom.com_________________________________________________________
)

Komponen array terdiri dari pasangan kunci (key) dan nilai (value). Key adalah penunjuk posisi
dimana value disimpan. Perhatikan juga bahwa PHP menggunakan tanda panah (=>) untuk
memberikan nilai kepada key.
Dalam mengakses nilai dari array, kita menggunakan kombinasi $nama_variabel dan nilai key-nya,
dengan penulisan sebagai berikut:
$nama_variabel[key];
Berikut adalah contoh pengaksesan array dalam PHP:
<?php
//pembuatan array
$nama = array(
1=>"Andri",
2=>"Joko",
3=>"Sukma",
4=>"Rina",
5=>"Sari");
//cara akses array
echo $nama[1]; //Andri
echo "<br />";
echo $nama[2]; //Joko
echo "<br />";
echo $nama[3]; //Sukma
?>

Dalam contoh diatas, saya menggunakan angka integer sebagai key (1,2,3) dan string sebagai
value (Andri, Joko, Sukma, ).
Selain mendefenisikan key secara langsung, PHP juga memperbolehkan penulisan array tanpa key,
dan key itu secara otomatis akan diurutkan dari nilai 0, 1, 2, dst.
Berikut adalah contoh pendefenisian array tanpa key:
<?php
// pembuatan array
$nama = array("Andri","Joko","Sukma","Rina","Sari");
// pengaksesan
echo $nama[1];
echo "<br />";
echo $nama[2];
echo "<br />";
echo $nama[3];
?>

array
//Joko
//Sukma
//Rina

Perhatikan bahwa sekarang, index atau key dari array dimulai dari angka 0, bukan 1. Sehingga
$nama[1] berisi Joko. nama Andri berada di $nama[0]. Dalam penggunaan array di dalam PHP, konsep
key array dimulai dari angka 0 ini sangat penting untuk dipahami
Selain menggunakan angka, key dalam PHP dapat berisi string atau boolean. Sedangkan untuk value
dapat menyimpan berbagai tipe data seperti integer, float, string, boolan, bahkan array lainnya. Array
seperti ini disebut juga dengan istilah associate array.
Berikut contoh penggunaan array dengan kombinasi tipe data.
16 | P a g e

http://www.duniailkom.com_________________________________________________________

<?php
// pembuatan array
$coba = array (
2=>"Andri",
"dua"=>"2",
'tiga'=>3,
true=>true,
9=>"sembilan",);
// pengaksesan array
echo $coba[2]; //Andri
echo "<br />";
echo $coba["dua"]; //2
echo "<br />";
echo $coba['tiga']; //3
echo "<br />";
echo $coba[true]; //1 (true di konversi menjadi 1)
echo "<br />";
echo $coba[9]; // sembilan
?>

Dari contoh diatas, saya membuat array $coba dengan menggunakan berbagai tipe data
untuk keydan value, yaitu dengan tipe data integer, string, dan boolean. Namun jika key di
defenisikan dengan tipe data boolean seperti pada baris ke-6, maka secara otomatis PHP akan
mengkonversinya menjadi 1.

17 | P a g e

http://www.duniailkom.com_________________________________________________________

Dalam tutorial kali ini kita telah membahas cara pembuatan Mengenal Tipe Data Array dan Cara
Penulisan Array dalam PHP. Array merupakan sebuah tipe data yang sangat berguna dalam
pembuatan program nantinya (terutama untuk menampilkan hasil dari database) dan PHP
menyediakan banyak fungsi untuk mendukung pemrosesan array, hal ini akan kita bahas dalam
pembahasan tentang array dalam tutorial lanjutan.
Dalam sesi tutorial selanjutnya, kita akan membahas operator-operator yang dapat digunakan untuk
memproses 4 tipe dasar PHP, dan juga array.

18 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 18: Pengertian Operand, Operator dan


Urutan Operator dalam PHP
Dalam tutorial PHP sebelumnya, kita telah mempelajari 4 tipe data dasar dalam PHP, yaitu Integer,
Float, String dan Boolean, serta 1 tipe data bentukan: Array. Dalam beberapa tutorial kedepan, saya
akan membahas operasi-operasi yang bisa dilakukan dengan kelima tipe data dasar PHP ini.
Sebagai permulaan, kali ini saya akan mulai dengan membahas pengertian operand, operator dan
urutan operator di dalam PHP.

Pengertian Operand dan Operator


Dalam bahasa pemograman, terdapat istilah operand dan operator. Operand adalah nilai asal yang
digunakan didalam proses operasi, sedangkan operator adalah instruksi yang diberikan untuk
mendapatkan hasil dari proses tersebut.
Contohnya, operasi: 5+2. Angka 5 dan 2 adalah operand, sedangkan tanda tambah (karakter +) adalah
operator. Beberapa operator bisa mengubah nilai dari operandnya sendiri, walaupun kebanyakan
hanya sebagai penghubung antar operand. Operator di dalam PHP banyak meminjam contoh karakter
dari bahasa C dan Perl.

Jenis Operator Berdasarkan Jumlah Operand


Berdasarkan jumlah operand, operator dapat dibedakan menjadi 3, yaitu Operator Unary, Binary dan
Ternary.
Operator unary adalah operator yang hanya memiliki 1 operand, contohnya karakter (tanda
minus). Tanda minus digunakan membuat sebuah angka menjadi negatif, contohnya: -5, atau
karakter + untuk menegaskan nilai positif, contohnya: +5.
Operator binary adalah operator yang memiliki 2 operand. Operator jenis ini adalah yang
paling banyak digunakan, misalkan 52, atau 10/3.
Operator Ternary adalah operator yang memiliki 3 operand. Didalam PHP hanya dikenal 1
operator ternary, yaitu operator kondisi (? :). Kita akan mempelajari operator ini dalam
tutorial selanjutnya.

Urutan Prioritas Operator dalam PHP


Sama seperti membuat persamaan dalam matematika, operator dalam PHP juga memiliki urutan
pemrosesan tersendiri. Misalkan terdapat kode program sebagai berikut:
$hasil1 = $a + $b/$c - $d;
$hasil2 = $a AND $b || $c AND $d;

Program tersebut akan dieksekusi oleh PHP dengan melihat urutan prioritasnya. Urutan prioritas ini
menetapkan seberapa dekat operator dengan kedua operand-nya. Sebagai contoh, 2+3*5 hasilnya
adalah 17, bukan 25. Hal ini karena operator perkalian (*) memiliki prioritas lebih tinggi daripada
operator penambahan (+).
Namun urutan prioritas ini dapat dipaksa dengan menggunakan tanda kurung, jika anda ingin
menjumlahkan 2 dan 3 terlebih dahulu, maka operasi sebelumnya bisa ditulis menjadi (2+3)*5 yang
hasilnya adalah 25.
19 | P a g e

http://www.duniailkom.com_________________________________________________________

Berikut adalah tabel urutan prioritas operator dalam PHP. Operator paling atas lebih diprioritaskan
dari pada operator dibawahnya, dan operator yang berada dalam baris yang sama memiliki urutan
prioritas yang sama

Dari tabel diatas, terdapat beberapa operator yang berada dalam 1 baris. Bagaimana PHP memproses
operator-operator yang memiliki urutan prioritas sama? Di dalam PHP, operator tersebut akan
diproses berdasarkan kolom arah proses.
Kolom arah proses (atau dalam manual PHP disebut dengan Associativity) digunakan untuk melihat
bagaimana arah proses operator dijalankan.
Misalkan operator kurang (-), di dalam tabel dapat dilihat bahwa operator kurang (-) memiliki arah
proses kiri, sehingga operasi 5 3 1 oleh PHP diproses dari kiri ke kanan. 5 3 1 diproses menjadi
(5 3) 1, dan hasilnya adalah 1.
Namun di dalam tabel, operator = memiliki arah proses kanan, sehingga $a = $b = $c, akan
diproses dari kanan terlebih dahulu, menjadi $a = ($b = $c).

20 | P a g e

http://www.duniailkom.com_________________________________________________________
Jika arah proses tersebut non-arah, berarti operator itu tidak bisa digunakan secara berdampingan.
Misalkan 4 < 6 > 2, tidak dapat diproses oleh PHP, namun 1 <= 1 == 1 bisa diproses karena operator ==
memiliki urutan prioritas lebih rendah daripada <=.
Selain untuk memaksakan urutan prioritas, penggunaan tanda kurung juga akan memudahkan
pembacaan program, bahkan ketika tidak diperlukan. Misalkan $a AND $b OR $c, akan lebih mudah
dimengerti ketika ditulis menjadi ($a AND $b) OR $c, walaupun sebenarnya operator AND memiliki
urutan prioritas lebih tinggi daripada OR.
Didalam tutorial PHP selanjutnya, kita akan membahas operator-operator didalam tabel diatas secara
satu persatu beserta contoh penggunaannya.

21 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 19: Pengertian dan Cara Penulisan


Fungsi var_dump() dalam PHP
Dalam tutorial kali ini kita akan membahas cara penggunaan salah satu fungsi penting dalam proses
pembuatan program ataupun pencarian kesalahan (debugging), yaitu fungsi var_dump(). Dalam
pembahasan tentang operator, kita akan sering menggunakan fungsi var_dump() untuk melihat
proses yang terjadi di dalam PHP.

Pengertian Fungsi var_dump()


Karena sifat variabel dalam PHP yang tidak bertipe (Loosely Typed Language), dalam pembuatan
program PHP sebuah tipe variabel dapat berubah menjadi tipe lainnya. Perubahan ini bergantung
operator yang digunakan. Seperti yang kita lihat pada saat pembahasan tentang tipe data boolean,
tipe data string aku, dapat menjadi tipe data boolean TRUE.
Perhatikan contoh kode berikut:
<?php
$a= 5; $b=8; $c=4.5;
$hasil1=$a+$b;
$hasil2=$a+$c;
$hasil3=$a.$b;
echo "\$hasil1: $hasil1 <br/>"; //13
echo "\$hasil2: $hasil2 <br/>"; //9.5
echo "\$hasil3: $hasil3 <br/>"; //"58"
?>

Dari contoh kode diatas, variabel $a dan $b bertipe integer, dan variabel $c bertipe float. Namun
variabel $hasil1, $hasil2 dan $hasil3 akan bertipe integer, float, dan string secara berurutan.
Salah satu aturan di dalam PHP, jika operator penyambungan string (karakter titik) digunakan untuk
tipe data integer, secara otomatis PHP akan mengkonversinya menjadi string, sehingga: 5(integer) +
8(integer) = 13(integer)
5(integer) . 8(integer) = 58(string)
Proses konversi ini dilakukan secara otomatis oleh PHP, sehingga kita memerlukan sebuah fungsi
untuk menyetahui secara lebih detail tipe data dan nilai sebuah variabel. Untuk keperluan inilah PHP
menyediakan fungsi var_dump().

Cara Penulisan Fungsi var_dump()


Untuk memastikan tipe data dari sebuah variabel, PHP menyediakan fungsi yang sangat berguna,
terutama untuk proses pengujian dan pencarian kesalahan (debugging), yakni fungsi var_dump.
Fungsi var_dump membutuhkan inputan variabel yang akan diperiksa. Berikut contoh penggunaan
fungsi var_dump:
<?php
$a= 5; $b=8; $c=4.5;
$hasil1=$a+$b;
$hasil2=$a+$c;
$hasil3=$a.$b;

22 | P a g e

http://www.duniailkom.com_________________________________________________________
echo
echo
echo
echo
echo
?>

"\$hasil1:"; var_dump($hasil1); //int(13)


"<br \>"; //
"\$hasil2:"; var_dump($hasil2); //float(9.5)
"<br \>";
"\$hasil3:"; var_dump($hasil3); //string(2) "58"

Dari tampilan hasil kode PHP tersebut, fungsi var_dump() selain menampilkan hasil variabel, juga
memperlihatkan jenis tipe dari variabel tersebut. Fitur ini akan sangat berguna dalam proses
pembuatan kode program PHP yang lebih rumit untuk menghindari kesalahan.
Perhatikan pula hasil dari var_dump($hasil3), hasil fungsi var_dump adalah string(2) 58. Angka 2
disini menjelaskan panjang dari variabel string tersebut.
Di dalam pembahasan tentang operator, saya akan sering menggunakan fungsi var_dump ini
nantinya. Untuk memulai pembahasan tentang operator dalam PHP, saya akan memulai dengan jenisjenis operator aritmatika dalam PHP.

23 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 20: Pengertian dan Jenis-jenis Operator


Aritmatika dalam PHP
Operator Aritmatika (Arithmetic Operators) atau operator matematika adalah operator dasar yang
sering kita gunakan sehari-hari. Dalam tutorial kali ini saya akan membahas tentang pengertian, jenis
dan cara penggunaan operator matematika di dalam PHP.

Pengertian Operator Aritmatika dalam PHP


Operator Aritmatika adalah operator matematis yang terdiri dari operator penambahan,
pengurangan, perkalian, pembagian, modulus, plus, dan minus.

Jenis Operator Aritmatika dalam PHP


Didalam PHP terdapat 7 jenis operator aritmatika, berikut ke tujuh operator tersebut:

Kebanyakan operator aritmatika dalam PHP bertipe binary yakni membutuhkan 2 operand, kecuali
operator minus (-) dan plus (+) yang merupakan operator tipe unary (hanya membutuhkan 1 operand).
Dari ke 7 operator aritmatika dalam PHP tersebut, operator modulus ($a % $b) mungkin terdengar
baru. Operator ini menghasilkan sisa hasil bagi dari hasil pembagian. Misalkan 10 % 3, hasilnya adalah
1. Biasanya operator modulus ini digunakan bersama-sama dengan operator pembagian (/).

Cara Penggunaan Operator Aritmatika di dalam PHP


Penggunakan operator aritmatika di dalam PHP relatif mudah, karena kita telah terbiasa dengan
operator ini.
Berikut adalah contoh kode program, cara penggunaan operator aritmatika dalam PHP:
<?php
$hasil1= -3;
$hasil2=3+5;
$hasil3=8-4.5;
$hasil4=2*5;
$hasil5=3+8/5-3;
$hasil6=10 % 4;
echo "\$hasil1:"; var_dump($hasil1); // $hasil1:int(-3)

24 | P a g e

http://www.duniailkom.com_________________________________________________________
echo
echo
echo
echo
echo
echo
echo
echo
echo
echo
?>

"<br \>";
"\$hasil2:";
"<br \>";
"\$hasil3:";
"<br \>";
"\$hasil4:";
"<br \>";
"\$hasil5:";
"<br \>";
"\$hasil6:";

var_dump($hasil2); // $hasil2:int(8)
var_dump($hasil3); // $hasil3:float(3.5)
var_dump($hasil4); // $hasil4:int(10)
var_dump($hasil5); // $hasil5:float(1.6)
var_dump($hasil6); // $hasil6:int(2)

Pada kode program diatas, saya menggunakan fungsi var_dump() untuk menampilkan hasil
perhitungan, sehingga kita bisa melihat tipe data dari masing-masing variabel.
Dari hasil var_dump(), terlihat bahwa variabel $hasil3 dan $hasil5 bertipe float. Hal ini dikarenakan
perhitungan aritmatika pada baris ke-4 dan ke-6 menghasilkan angka desimal, sehingga secara
otomatis variabel tersebut tidak dapat ditampung sebagai integer, melainkan harus float.
Namun jika hasil operasi matematis tersebut menghasilkan bilangan bulat, PHP akan menyimpannya
sebagai tipe data int (integer), seperti variabel $hasil1, $hasil2, $hasil4 dan $hasil6.
Pada perhitungan baris ke-6 yaitu persamaan $hasil5=3+8/5-3, hasilnya adalah 1.6. Hal ini karena
operator pembagian memiliki prioritas lebih tinggi daripada operator tambah dan kurang. Operasi
3+8/5-3 dikerjakan oleh PHP sebagai (3+(8/5))-3. Namun untuk hal ini, disarankan menggunakan
tanda kurung secara tertulis agar memudahkan dalam membaca alur program, dari pada bergantung
kepada aturan prioritas operator PHP.
Namun jika tidak ditegaskan dengan menggunakan tanda kurung, urutan prioritas operator
matematis dalam PHP mengikuti aturan tabel yang kita bahas pada tutorial Pengertian Operand,
Operator dan Urutan Operator dalam PHP
Itulah operator-operator dasar aritmatika dalam PHP. Untuk keperluan yang lebih spesifik seperti
pemangkatan, logaritma, exponensial dan sinus, PHP menyediakan fungsi matematika (Mathematical
Functions) yang akan kita bahas pada tutorial PHP lanjutan.
Tutorial Belajar PHP Part 21: Pengertian dan Jenis-jenis Operator String dalam PHP
String merupakan tipe dasar yang paling sering digunakan dalam PHP. Dalam tutorial kali ini kita akan
membahas jenis dan cara penggunaan operator string dalam PHP (String Operators).

Pengertian dan Jenis Operator String dalam PHP


Dalam PHP, hanya terdapat 1 jenis operator String, yakni operasi penyambungan (concatenation)
string. Operator ini menggunakan karakter titik (.).
Operator penyambungan string ini membutuhkan 2 inputan yang bertipe data string. Hasil dari
operator ini adalah sebuah string yang terdiri dari sambungan kedua string tersebut.

Cara Penggunaan Operator String di dalam PHP


Berikut adalah contoh kode program cara penggunaan operator string dalam PHP:
<?php
$a = "Hello ";
$hasil = $a . "World!";
echo $hasil; // Hello World!
echo "<br />";

25 | P a g e

http://www.duniailkom.com_________________________________________________________
$a = "belajar ";
$b = "PHP ";
$c = "di Duniailkom.com";
$hasil= "Saya sedang ".$a.$b.$c;
echo $hasil; // Saya sedang belajar PHP di Duniailkom.com
?>

Pada kode program diatas, saya menyambung beberapa string sederhana menggunakan operator
concatenation (tanda .).

Cara Alternatif: Penyambung string dengan kurung kurawal { }


Didalam PHP, tanda kurung kurawal (karakter { dan }) untuk variabel bisa berfungsi
sebagaipenyambung string. Contoh kode program diatas dapat juga ditulis menjadi:
<?php
$a = "Hello ";
$hasil = "{$a} World!";
echo $hasil; // Hello World!
echo "<br />";
$a = "belajar ";
$b = "PHP ";
$c = "di Duniailkom.com";
$hasil= "Saya sedang {$a}{$b}{$c}";
echo $hasil; // Saya sedang belajar PHP di Duniailkom.com
?>

Contoh diatas memanfaatkan sifat pendefenisian string menggunakan tanda kutip dua (double
quote). Seperti yang telah kita bahas pada tutorial Mengenal Tipe Data String dan Cara Penulisan
String dalam PHP, jika pendefenisian string menggunakan double quote (karakter ), maka setiap
variabel akan diproses oleh PHP.
Namun kita tidak bisa menulis :
$hasil= "Saya sedang $a$b$c"; //akan menghasilkan error

Karena yang akan diproses PHP adalah 1 variabel saja, yakni $a$b$c. sehingga kita perlu
menambahkan tanda kurung kurawal (karakter { dan }) untuk memisahkan ketiga string menjadi
{$a}{$b}{$c}.
Beberapa situs referensi PHP, menyebutkan bahwa cara ini lebih cepat untuk menyambung string
daripada menggunakan operator titik (.), Namun anda tidak akan melihat perbedaanya untuk kode
program sederhana.
Dalam tutorial ini kita telah membahas tentang operator penyambungan (concatenation) string
dalam PHP. Namun PHP juga menyediakan banyak fungsi pemrosesan string untuk keperluan lebih
lanjut, seperti memecah string menjadi array, memotong string, dll. Kita akan membahas fungsi string
ini pada lain kesempatan.

26 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 22: Pengertian dan Jenis-jenis Operator


Logika dalam PHP
Operator logika digunakan untuk membandingkan 2 inputan kondisi boolean, yakni true ataufalse.
Dalam tutorial kali ini kita akan membahas tentang jenis dan cara penggunaan operator logika (Logical
Operators) dalam PHP, serta memahami pengertian prinsip short-circuit dalam operasi logika PHP.

Pengertian Operator Logika dalam PHP


Operator Logika adalah operator yang digunakan untuk membandingkan 2 kondisi logika, yaitu logika
benar (TRUE) dan logika salah (FALSE). Operator logika sering digunakan untuk kodisi IF, atau untuk
keluar dari proses perulangan (looping).
Jenis operand dalam operator logika ini adalah variabel dengan tipe boolean. Namun
jikaoperand bukan boolean, akan dikonversi menjadi boolean oleh PHP (aturan konversi ini telah
kita bahas pada tutorial tentang tipe data boolean PHP).

Jenis-jenis Operator Logika dalam PHP


Jenis-jenis operator logika dalam PHP dapat dilihat dari tabel berikut:

Perbedaan dari operator AND dengan &&, dan OR dengan || terkait dengan cara penulisan dan aturan
kekuatan operator. Operator && dan || memiliki kekuatan lebih tinggi dari pada AND danOR,
sehingga baris perintah: $a AND $b || $c, akan dieksekusi oleh PHP menjadi $a AND ($b || $c).
Dari tabel diatas, saya hanya memberikan hasil untuk kondisi TRUE, maka selain kondisi tersebut,
hasilnya adalah FALSE.
Cara Penggunaan Operator Logika di dalam PHP
Berikut adalah contoh kode program, cara penggunaan operator logika dalam PHP:
<?php
$hasil1 = true and false;
echo '$hasil1 = ';
echo var_dump($hasil1)."<br/>"; // $hasil1 = bool(true)
$hasil2 = (true and false);
echo '$hasil2 = ';
echo var_dump($hasil2)."<br/>"; // $hasil2 = bool(false)
$hasil3 = (true xor false);
echo '$hasil3 = ';

27 | P a g e

http://www.duniailkom.com_________________________________________________________
echo var_dump($hasil3)."<br/>"; // $hasil3 = bool(true)
$hasil4 = (false or true && false);
echo '$hasil4 = ';
echo var_dump($hasil4)."<br/>"; // $hasil4 = bool(false)
$a=true;
$b=false;
$hasil5 = ($a and $b || $a or b);
echo '$hasil5 = ';
echo var_dump($hasil5); // $hasil5 = bool(true)
?>

Saya akan membahas kode program diatas:


Pada baris 2, operasi logika yang dijalankan adalah $hasil1 = true and false, yang harusnya
$hasil1 akan bernilai false (berdasarkan prinsip operator and: jika salah satu saja ada yang false, maka
hasilnya adalah false)
Namun seperti yang terlihat dalam tampilan saat program dijalankan, variabel $hasil1 bernilai true!.
Apa yang sebenarnya terjadi? Hal ini kembali kepada prinsip urutan prioritas operator.
Jika anda perhatikan tabel urutan operator pada tutorial urutan operator dalam PHP, operator
assignment (pendefenisian variabel) yaitu menggunakan tanda sama dengan (=) memiliki priotitas
lebih tinggi dari pada operator logika and. Sehingga yang sebenarnya diproses adalah ($hasil1 = true)
and false, sehingga $hasil1 akan bernilai true.
Kesalahan pemograman seperti ini akan sulit dideteksi, sehingga anda disarankan menggunakan tanda
kurung untuk menegaskan urutan program.
Pada baris ke-6, untuk variabel $hasil2 saya mengulangi operasi yang sama dengan baris 2, namun kali
ini dengan menggunakan tanda kurung untuk memberitahukan kepada PHP bahwa operasi logikalah
yang harus dijalankan pertama kali, baru setelah itu proses assigment yang kali ini berjalan
sebagaimana harusnya (true and false menghasilkan false). Dan variabel $hasil2 bernilaifalse.
Pada baris ke-10, variabel $hasil3 bernilai true, karena operator xor akan menghasilkan trueapabila
salah satu operand bernilai true.
Untuk baris ke-14, $hasil4 = (false or true && false), urutan proses operasi dimulai terlebih dahulu
pada operator && karena memiliki urutan prioritas lebih tinggi daripada operator or, sehingga yag
diproses oleh PHP adalah (false or (true && false)), dan menghasilkan nilai false.
Pada contoh terakhir baris ke-20, operator || akan diproses terlebih dahulu, sehingga persamaanya
menjadi $hasil5 = ($a and ($b || $a) or b).
Dalam membuat operasi logika ini, sedapat mungkin untuk mengujinya terlebih dahulu, karena
kesalahan program pada logika akan sulit terdeteksi.
Pengertian Prinsip Short Circuit dalam operasi Logika PHP
PHP menjalankan operasi logika dengan prinsip short-circuit, yaitu jika dengan memeriksa satu
perintah saja sudah didapati hasil logikanya, maka perintah lain tidak akan dijalankan. Contohnya:
$hasil = $a AND $b AND $c AND $d;

Jika pada saat program dijalankan $a sudah bernilai FALSE, maka variabel $b, $c dan $d tidak akan
diperiksa lagi, karena apapun nilai variabel tersebut, hasilnya akan tetap FALSE.
Hal ini akan berguna untuk kasus-kasus tertentu, seperti contoh berikut:

28 | P a g e

http://www.duniailkom.com_________________________________________________________
<?php
$result = fopen($filename) or exit();
?>

Fungsi exit() dalam kode PHP tersebut (yang akan membuat program PHP berhenti diproses) tidak
akan dijalankan selama fopen($filename) bernilai true. Fungsi short-circuit ini sering digunakan dalam
contoh-contoh aplikasi PHP.
Dalam tutorial ini kita telah mempelajari operator logika dalam PHP, untuk selanjutnya kita akan
membahas operator perbandingan.

29 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 23: Pengertian dan Jenis-jenis Operator


Perbandingan dalam PHP
Dalam tutorial kali ini kita akan mempelajari jenis dan cara penggunaan operator perbandingan
(Comparison Operators) dalam PHP.
Pengertian Operator Perbandingan dalam PHP
Sesuai dengan namanya, operator perbandingan membandingkan nilai dari 2 operand. Hasilnya selalu
salah satu dari TRUE atau FALSE. Hasil perbandingan akan bernilai TRUE jika kondisi perbandingan
tersebut benar, atau FALSE jika kondisinya salah.
Operand untuk operator perbandingan ini bisa berupa tipe data angka (integer atau float), maupun
bertipe string. Operator perbandingan akan memeriksa nilai dan (untuk beberapa operator) juga tipe
data dari operand.

Jenis-jenis Operator Perbandingan dalam PHP


Jenis-jenis dari operator perbandingan dalam PHP dapat dilihat dari tabel dibawah ini:

Dikarenakan operasi perbandingan dapat memiliki operan berupa angka dan string, PHP memiliki
aturan sebagai berikut:

Dari tabel diatas dapat dilihat bahwa selain membandingkan angka dengan angka, PHP juga
membolehkan perbandingan angka dengan string, array, bahkan objek. Namun dalam prakteknya kita
akan sering membandingkan angka.
30 | P a g e

http://www.duniailkom.com_________________________________________________________

Cara Penggunaan Operator Perbandingan di dalam PHP


Berikut adalah beberapa contoh penggunaan operator perbandingan dalam PHP:
<?php
echo "1. 12 < 14 = "; var_dump(12<14); // bool(true)
echo "<br />";
echo "2. 14 < 14 = "; var_dump(14<14); // bool(false)
echo "<br />";
echo "3. 14 <= 14 = "; var_dump(14<=14); // bool(true)
echo "<br />";
echo "4. 10 <> '10' = "; var_dump(10<>'10'); // bool(false)
echo "<br />";
echo "5. 10 == '10' = "; var_dump(10=='10'); // bool(true)
echo "<br />";
echo "6. 10 === '10' = "; var_dump(10==='10'); // bool(false)
echo "<br />";
echo "7. '150' == '1.5e2' = "; var_dump('150'=='1.5e2'); // bool(true)
echo "<br />";
echo "8. 'duniailkom' == 0 = "; var_dump('duniailkom'==0); //
bool(true)
echo "<br />";
?>

Dalam contoh kode PHP diatas, saya menggunakan fungsi var_dump() untuk melihat hasil dari
perbandingan. Contoh 1 sampai 3 merupakan operasi perbandingan aritmatika biasa.
Pada contoh ke 4, 10 <> 10 = FALSE, karena PHP menganggap kedua operand adalah sama, sehingga
jika diberikan operator tidak sama dengan (<>), maka hasilnya FALSE. Perhatikan bahwa tipe data
31 | P a g e

http://www.duniailkom.com_________________________________________________________
kedua angka berbeda, saya menambahkan tanda petik untuk membuah string 10, namun PHP
mengkonversinya menjadi integer 10 ketika membandingkan (sesuai aturan tabel diatas).
Pada contoh ke 5, 10 == 10 = TRUE, karena alasan yang sama dengan penjelasan contoh ke 4. String
10 dikonversi terlebih dahulu menjadi angka, lalu dibandingkan, sehingga hasilnya menjadiTRUE.
Untuk contoh ke 6, 10 === 10 = FALSE, karena operator === selain membandingkan nilai, juga
membandingkan tipe data dari opearand, sehingga string 10 dianggap tidak sama dengan integer10.
Hal ini berbeda dengan contoh ke 5.
Untuk contoh ke 7, 150 == 1.5e2 = TRUE, karena seluruh string yang berupa angka dikonversi
menjadi angka terlebih dahulu, dan 1.5e2 adalah penulisan scientific dari 1,5 x 10^2, yang hasilnya
adalah 150. Namun sama seperti contoh ke 6, jika kita mengganti operator == dengan ===, maka
hasilnya akan FALSE.
Pada contoh terakhir, no 8. Saya membandingkan string dengan angka, sehingga string
duniailkom dikonversi menjadi integer bernilai 0, dan baru disamakan dengan operan kedua, yakni
angka 0. Karena 0==0, maka hasilnya = TRUE.
Operator perbandingan ini sering digunakan untuk kondisi IF, misalkan jika $nama_user ada di dalam
database, maka jalankan kode program. Lebih lanjut tentang penggunaan operator perbandingan,
akan kita bahas pada tutorial lanjutan.
Tutorial Belajar PHP Part 24: Pengertian dan Jenis-jenis Operator Increment dan Decrement PHP
Operator Increment dan Decrement adalah operator yang mempersingkat pembuatan kode program.
Dalam tutorial kali ini kita akan membahas Pengertian, Jenis-jenis serta cara penggunaan Operator
Increment dan Decrement dalam PHP.

Pengertian Operator Increment dan Decrement PHP


Operator Increment dan Decrement adalah penyebutan untuk operasi sepert $a++, dan $a. Jika
anda telah mempelajari bahasa pemograman lain, operasi increment dan decrement ini sering
digunakan dalam perulangan (looping).
Increment digunakan untuk menambah variabel sebanyak 1 angka, sedangkan decrementdigunakan
untuk mengurangi variabel sebanyak 1 angka. Penulisannya menggunakan tanda tambah 2 kali
untuk increment, dan tanda kurang 2 kali untuk decrement. Penempatan tanda tambah atau kurang
ini boleh diwal, atau diakhir variabel, namun keduanya memiliki perbedaan, sehingga terdapat 4 jenis
increment dan decrement dalam PHP.

Jenis Operator Increment dan Decrement dalam PHP


Berikut adalah tabel 4 jenis operator increment dan decrement dalam PHP:

Dari tabel diatas terlihat bahwa terdapat 2 jenis increment, yaitu Pre-increment, dan Post-Increment,
dan 2 jenis decrement, yaitu Pre-decrement dan Post-decrement. Perbedaan keduanya terletak pada
posisi mana tanda tambah atau kurang diletakkan.

Cara Penggunaan Operator Increment dan Decrement


32 | P a g e

http://www.duniailkom.com_________________________________________________________
Untuk memahami cara penggunaan operator increment dan decrement, berikut contoh kode
program PHP:
<?php
echo "<h3>Postincrement</h3>";
$a = 5;
echo "\$a = $a <br />";
echo "\$a akan bernilai 5: " . $a++ . " (\$a++)<br />";
echo "\$a akan bernilai 6: " . $a . "<br />";
echo
$a =
echo
echo
echo

"<h3>Preincrement</h3>";
5;
"\$a = $a <br />";
"\$a akan bernilai 6: " . ++$a . " (++\$a)<br />";
"\$a akan bernilai 6: " . $a . "<br />";

echo
$a =
echo
echo
echo

"<h3>Postdecrement</h3>";
5;
"\$a = $a <br />";
"\$a akan bernilai 5: " . $a-- . " (\$a--)<br />";
"\$a akan bernilai 4: " . $a . "<br />";

echo
$a =
echo
echo
echo
?>

"<h3>Predecrement</h3>";
5;
"\$a = $a <br />";
"\$a akan bernilai 4: " . --$a . " (--\$a)<br />";
"\$a akan bernilai 4: " . $a . "<br />";

Contoh kode program diatas terlihat agak rumit, namun sebagian besar hanyalah pengaturan format
agar hasilnya tampil rapi seperti berikut ini:

33 | P a g e

http://www.duniailkom.com_________________________________________________________

Terlihat bahwa Post-increment ($a++), akan memberikan hasilnya dulu, baru menambahkan nilai
variabel $a sebanyak 1 angka, namun dengan Pre-increment, $a akan ditambahkan 1 angka, baru
nilainya ditampilkan. Begitu juga hal nya dengan operasi Post-decrement dan Pre-decrement.
Dalam tutorial PHP kali ini kita telah membahas tentang operator Increment dan Decrementdalam
PHP dan perbedaan Post-Increment dan Pre-Increment. Memahami perbedaan ini akan
memudahkan kita dalam menulis dan menghindari penulisan kode program yang tidak diinginkan.
Tutorial Belajar PHP Part 25: Pengertian dan Jenis-jenis Operator Assignment dalam PHP
Dalam tutorial kali ini saya akan membahas tentang Pengertian dan Jenis-jenis Operator Assignment
(Assignment Operators) dalam PHP, serta perbedaan antara Assignment by Value danAssignment by
References.

Pengertian Operator Assignment dalam PHP


Operator assignment adalah operator untuk menambahkan, atau memasukkan sebuah nilai
kedalam variabel. PHP memiliki 3 jenis operator assigment, dan kita telah menggunakan 2
diantaranya, yaitu tanda = untuk mengdefenisikan variabel, dan tanda => untuk mengisi nilai dari
array.
34 | P a g e

http://www.duniailkom.com_________________________________________________________

Jenis-jenis Operator Assigment dalam PHP


PHP mengenal 3 jenis operator assigment, yaitu Assigment dengan Nilai (Assignment by
Value),Assigment Array, dan Assigment dengan Referensi (Assignment by Reference).

Pengertian Operator Assigment dengan Nilai (Assignment by Value)


Assigment dengan Nilai atau dalam istilah pemograman dikenal dengan Assignment by Value , adalah
proses pemberian nilai kedalam sebuah variabel dengan meng-copy nilai atau value dari variabel lain.
PHP menggunakan tanda sama dengan (=) untuk Assignment by Value. Secara tidak sadar, kita telah
banyak menggunakan operator ini dalam berbagai contoh pada tutorial sebelumnya. Pada saat
menggunakan operator =, PHP meng-copy nilai (atau value), dari sisi kanan operator ke sisi kiri.
Operator Assignment by Value (dan juga operator assigment lainnya) memiliki arah proses kanan
(dapat dilihat dalam tabel urutan proses pada Tutorial PHP: Pengertian Operand, Operator dan Urutan
Operator dalam PHP) sehingga proses pemberian nilai kepada sebuah variabel dimulai dari kanan,
seperti contoh berikut:
<?php
$a = 20;
$b = 15;
$c = 5;
echo "\$a = $a, \$b = $b, \$c = $c";
echo "<br />";
// hasil proses: $a = 20, $b = 15, $c = 5
$a = $b = $c+5;
echo "\$a = $a, \$b = $b, \$c = $c";
// hasil proses: $a = 10, $b = 10, $c = 5
?>

Pada contoh kode PHP diatas, saya mendefenisikan 3 variabel: $a, $b, dan $c dengan
operatorassigment by value. Perhatikan pada baris terakhir, dimana saya menuliskan kode $a = $b =
$c+5, yang urutan pemrosesannya di mulai dari kanan ke kiri, sehingga yang diproses oleh PHP
menjadi:$a = ($b = ($c+5)).

Pengertian Operator Assigment Array


Operator Assigment array adalah operator assigment untuk menginput nilai kedalam array. Operator
ini menggunakan tanda panah (=>). Kita telah membahas cara pembuatan, dan penggunaan operator
ini pada tutorial Mengenal Tipe Data Array dan Cara Penulisan Array dalam PHP.

Pengertian Assigment dengan Referensi (Assignment by Reference)


Assigment dengan referensi atau dalam istilah programmingnya: Assignment by Reference, adalah
operator assigment khusus yang digunakan untuk men-copy nilai referensi dari sebuahvariabel.

35 | P a g e

http://www.duniailkom.com_________________________________________________________
Perhatikan contoh kode PHP berikut ini:
<?php
$a = 20;
$b = $a;
echo "\$a = $a, \$b = $b";
echo "<br />";
// hasil proses: $a = 20, $b = 20
$a = $a + 5;
echo "\$a = $a, \$b = $b";
echo "<br />";
// hasil proses: $a = 25, $b = 20
$b = $b + 10;
echo "\$a = $a, \$b = $b";
// hasil proses: $a = 25, $b = 30
?>

Dalam kode program diatas, saya membuat 2 buah variabel, yaitu $a dan $b. Variabel $a saya input
dengan nilai 20, sedangkan variabel $b men-copy nilai dari variabel $a. Selanjutnya saya tampilkan
kedua variabel tersebut menggunakan perintah echo.
Pada baris ke-9 saya menambahkan nilai variabel $a dengan 5, lalu menampilkan hasil kedua variabel
tersebut. Selanjutnya pada baris ke-14 saya menambahkan $b dengan 10, lalu menampilkan hasilnya
Kata kunci disini adalah, variabel $b hanya men-copy nilai yang ada pada variabel $a, sehingga kedua
variabel memiki nilai sendiri-sendiri dan terpisah, seperti yang terlihat dari hasil echo.
Bagaimana jika yang saya inginkan adalah: karena variabel $a=$b, maka ketika saya merubah nilai
salah satu variabel, nilai pada variabel yang lain juga ikut berubah. Fitur inilah yang bisa didapatkan
dengan Assignment by Reference.
Assignment by Reference dalam PHP menggunakan operator = &.
Perhatikan contoh kode PHP berikut yang sama persis dengan contoh sebelumnya, namun saya
mengganti baris $b = $a, menjadi $b = &$a:
<?php
$a = 20;
$b = &$a;
echo "\$a = $a, \$b = $b";
echo "<br />";
// hasil proses: $a = 20, $b = 20
$a = $a + 5;
echo "\$a = $a, \$b = $b";
echo "<br />";
// hasil proses: $a = 25, $b = 25
$b = $b + 10;
echo "\$a = $a, \$b = $b";
// hasil proses: $a = 35, $b = 35
?>

Seperti yang dapat dilihat, bahwa sekarang kedua variabel ($a dan $b), seolah-olah saling terikat,
sehingga ketika sebuah variabel diubah nilainya, variabel yang lain juga ikut berubah.
36 | P a g e

http://www.duniailkom.com_________________________________________________________

Perbedaan Assigment By Value, dengan Assigment By Reference


Agar lebih jelas, berikut adalah Perbedaan Proses Assigment By Value, dengan Assigment By
Reference
Didalam bahasa pemograman (dan juga PHP), sebuah nilai dari variabel di simpan pada sebuah
alamat tertentu di memory komputer. Alamat memory inilah yang dimaksud dengan referensi.
Misalkan variabel $a memiliki nilai 20, dan berada pada lokasi memory 1013, ketika saya membuat
kode program $b=$a, maka nilai (atau value) dari variabel $a di-copy ke dalam variabel $b yang
mungkin saja akan berada pada lokasi memory 1014. Sehingga saat ini ada 2 buah lokasi memori untuk
menampung nilai dari masing-masing variabel, $a pada lokasi 1013 dengan nilai 20, dan $bpada
lokasi 1014 dengan nilai 20 (dicopy dari nilai $a).
Ketika saya menambahkan variabel $a dengan operasi $a = $a + 5, nilai pada lokasi memory 1013akan
menjadi 25, namun karena memiliki lokasi memory yang berbeda, nilai pada variabel $b akan tetap 20.
Inilah proses yang terjadi ketika menggunakan Assigment By Value.
Bagaimana dengan Assigment By Reference?
Ketika variabel $a dengan nilai 20 berada di lokasi memory 1013, dan saya menjalankan
perintah$b=&$a, maka yang terjadi adalah, alamat lokasi memory (referensi) untuk variabel $b dicopy
dari nilai variabel $a, sehingga kedua variabel memiliki 1 alamat memory yang sama, yaitu 1013.
Karena alamat untuk variabel $a dan $b sama, maka ketika salah satu variabel mengubah nilai di
alamat 1013, maka nilai tersebut akan berubah. Ketika saya menambahkan nilai
variabel $a denganoperasi $a = $a + 5, nilai pada lokasi memory 1013 akan menjadi 25. Dan ketika
saya tampilkan nilai dari variabel $b, maka PHP akan mencari nilai di lokasi memori 1013, dan
menampilkan hasilnya, yakni 25. Kedua variabel $a dan $b terikat dengan 1 lokasi memory yang sama.
Dalam tutorial ini kita telah mempelajari tentang pengertian dan jenis operator assigment, serta
perbedaan antara assigment by value dengan assigment by references. Konsep ini bersifat universal
untuk berbagai bahasa pemograman (tidak hanya PHP).
Tutorial Belajar PHP Part 26: Pengertian dan Jenis-jenis Operator Bitwise dalam PHP
Melanjutkan pembahasan tentang operator, dalam tutorial ini kita saya akan membahas Pengertian
dan Jenis-jenis Operator Bitwise (Bitwise Operator) dalam PHP.

Pengertian Operator Bitwise dalam PHP


Operator bitwise (Bitwise Operators) adalah operator khusus yang disediakan PHP untuk menangani
proses logika untuk bilangan biner. Bilangan biner atau binary adalah jenis bilangan yang hanya terdiri
dari 2 jenis angka, yakni 0 dan 1. Jika operand yang digunakan untuk operator ini bukan bilangan
biner, maka akan dikonversi secara otomatis oleh PHP menjadi bilangan biner.
Dalam penerapannya, operator bitwise tidak terlalu sering digunakan, kecuali anda membuah
program yang langsung berkaitan dengan pemrosesan bilangan biner.

Jenis-Jenis Operator Bitwise PHP


PHP mendukung 6 jenis operator bitwise. Daftar lengkapnya dapat dilihat pada tabel dibawah ini:

37 | P a g e

http://www.duniailkom.com_________________________________________________________

Cara Penggunaan Operator Bitwise dalam PHP


Seluruh operator bitwise tersebut diproses dalam bentuk biner. Berikut contoh cara penggunaan
operator bitwise dalam PHP:
<?php
$a=0b10110101;
$b=0b01101100;
echo "\$a = 10110101 = $a"; echo "<br />";
echo "\$b = 01101100 = $b"; echo "<br />";
echo "<br />";
echo "==Hasil Bitwise=="; echo "<br />";
$hasil = $a & $b;
echo "1. \$a & \$b = $hasil"; echo "<br />";
$hasil = $a | $b;
echo "2. \$a | \$b = $hasil"; echo "<br />";
$hasil = $a ^ $b;
echo "3. \$a ^ \$b = $hasil"; echo "<br />";
echo "4. ~\$a = ".~$a; echo "<br />";
$hasil = $a >> 1;
echo "5. \$a >> 1 = $hasil"; echo "<br />";
$hasil = $b << 2;
echo "6. \$b << 2 = $hasil"; echo "<br />";
?>

38 | P a g e

http://www.duniailkom.com_________________________________________________________

Dalam contoh kode PHP diatas, saya mendefenisikan 2 variabel yakni $a dan $b, dan memberikan nilai
awal berupa angka biner ke dalam kedua variabel tersebut (cara penulisan angka biner telah kita
bahas pada tutorial Tutorial PHP: Mengenal Tipe Data Integer dan Cara Penulisan Integer dalam PHP)
Variabel $a berisi angka biner: 10110101, yang nilai desimalnya adalah 181, dan variabel $b berisi
angka biner: 01101100, yang nilai desimalnya adalah 108.
Pada contoh 1, saya melakukan operasi & terhadap kedua variabel. Operasi bitwise and ini akan
memproses bit per bit dari kedua variabel, jika kedua bit sama-sama 1, maka hasilnya juga 1, selain
kondisi tersebut, nilai akhirnya adalah 0. Berikut perhitungan bitwise and:
$a =
10110101
$b =
01101100
-------$a & $b = 00100100 = 36 (desimal)

Dan dari hasil echo, terlihat bahwa hasilnya adalah 36 (dalam bentuk desimal).
Contoh kedua, untuk operasi I atau or, akan bernilai 0 jika kedua bit variabel bernilai 0, selebihnya
nilai bit hasil akan diset menjadi 1. Berikut perhitungan bitwise or:
$a =
10110101
$b =
01101100
-------$a | $b = 11111101 = 253 (desimal)

Contoh ketiga, menggunakan operasi ^ atau xor, dan bit hasil akan bernilai 1 jika salah satu dari kedua
variabel bernilai 1, namun tidak keduanya. Berikut perhitungan bitwise xor:

39 | P a g e

http://www.duniailkom.com_________________________________________________________
$a =
10110101
$b =
01101100
-------$a ^ $b = 11011001 = 217 (desimal)

Contoh keempat, menggunakan operasi ~ atau not,yang akan membalikkan nilai bit sebuah variabel
dari 0 menjadi 1, dan 1 menjadi nol. Namun perhitungan bit not ini sedikit membingungkan, karena
jika kita hanya membalikkan seluruh bitnya saja, hasilnya tidak sesuai dengan apa yang dihitung oleh
PHP, seperti contoh perhitungan berikut:
$a = 10110101
-------~$a = 01001010 = 74 (desimal) ==> salah ???

Dari hasil menjalankan program, dapat dilihat bahwa ~$a = -182, darimanakah angka ini? Hal ini
terkait dengan cara PHP menyimpan angka biner dengan 32 bit. PHP menyimpan bit dalam
perhitungan matematis komputer yang di sebut dengan Twos complement Penjelasan tentang ini
dapat anda baca lebih lanjut pada http://en.wikipedia.org/wiki/Two%27s_complement dan
http://stackoverflow.com/questions/18754198/confusing-php-bitwise-not-behavior
Namun cara perhitungan singkatnya adalah sebagai berikut:
$a
= 00000000000000000000000010110101 (32 bit)
-------~$a = 11111111111111111111111110110101 (32 bit negative)
Flip & -1 = 00000000000000000000000010110101 - 1
~$a = -182 (desimal) ==> benar

Karena PHP memproses menggunakan 32 bit, maka kita harus mengikutkan seluruh bit 0 yang berada
di depan angka biner dengan total 32 digit, lalu menegatifkannya. Jika angka paling kiri terdapat angka
1, maka ini adalah instruksi kepada PHP bahwa hasilnya akan negatif, dan hasil negatif di flip
(dinegatifkan kembali), lalu dikurang 1, sehingga menjadi -182 dalam desimal.
Contoh ke 5, adalah operator Shift right dimana PHP akan menggeser variabel $a ke kanan sebanyak
1 tempat. Berikut proses yang terjadi:
$a
= 10110101 = 181
$a >> 1 = 1011010 = 90 (desimal)

Operator shift right menggeser nilai biner variabel $a ke arah kanan, dan digit paling kanan akan
dihapus. Operator shift right ini akan menghasilkan nilai asal / 2. Dalam contoh, hasilnya adalah 180/2
= 90 (dibulatkan). Setiap penggeseran 1 tempat ke kanan akan membagi 2 nilai asal.
Contoh ke 6 adalah operator Shift Left, dimana PHP menggeser nilai variabel $b sebanyak 2 digitke
kiri. Berikut proses yang terjadi:
$b
=
01101100 = 108
$b << 2 = 0110110000 = 432 (desimal)

Ketika hasil pergeseran ke kanan, digit paling kiri akan diisi dengan nilai 0. Setiap penggeseran 1
tempat ke kiri akan mengkali 2 nilai asal.
Dalam tutorial kali ini kita telah mempelajari operator bitwise dalam PHP. Anda tidak akan sering
menggunakan operator ini. PHP menyediakan operator bitwise untuk keperluan khusus.
40 | P a g e

http://www.duniailkom.com_________________________________________________________

41 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 27: Pengertian dan Jenis Operator


Gabungan Assigment PHP
Dalam tutorial kali ini, saya akan membahas tentang operator gabungan assigment (combined
assigment operators) dalam PHP.
Pengertian Operator Gabungan (Combined Operators)
Operator gabungan assigment adalah cara penulisan singkat operator dengan menggunaan sebuah
operatror assigment secara bersamaan dengan operator lainnya. Dalam PHP, operator gabungan ini
adalah antara operator assigment dengan operator lain seperti operator aritmatika, string, bitwise,
dll.
Untuk memahami operator gabungan assigment ini, perhatikan contoh berikut:
<?php
$a = 10;
$a = $a +
$a = $a echo "\$a
echo "<br

5;
10;
= $a";
/>";

// sama hasilnya dengan kode berikut:


$b = 10;
$b += 5; // sama dengan $b = $b + 5;
$b -= 10;// sama dengan $b = $b - 10;
echo "\$b = $b";
?>

Pada baris ke.. saya menggunakan operator gabungan untuk mempersingkat penulisan $b = $b + 5
menjadi $b += 5;

Jenis-jenis Operator Gabungan (Combined Operators)


Operator gabungan assigment bisa digunakan hampir untuk seluruh operator lainnya, berikut tabel
jenis operator gabungan assigment dalam PHP:

Operator gabungan ini akan menghemat penulisan kode program, namun jika anda nyaman
menggunakan kode yang sedikit panjang juga tidak masalah.

42 | P a g e

http://www.duniailkom.com_________________________________________________________
Dalam tutorial belajar PHP selanjutnya, kita akan membahas tentang perubahan tipe data dalam PHP,
atau dikenal dengan istilah Type Juggling dan Type Casting dalam PHP.

43 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 28: Cara Mengubah Tipe Data PHP (Type
Juggling dan Type Casting)
Dalam tutorial kali ini kita akan membahas tentang cara merubah tipe data PHP dari sebuah tipe data
menjadi tipe data lainnya. Dalam permograman PHP, hal ini dikenal dengan istilah type
juggling dan type casting.

Pengertian Type Juggling dalam PHP


PHP merupakan bahasa pemograman yang tidak terlalu ketat dalam aturan tipe data (dimana sebuah
variabel dapat diisi dengan berbagai tipe data). Hal ini memberikan kemudahan penulisan, namun juga
mendatangkan permasalahan tersendiri. Terkadang PHP mengubah tipe data suatu variabel menjadi
tipe data lainnya secara tidak langsung tanpa kita instruksikan.
Jika anda telah mengikuti tutorial PHP di duniailkom tentang pembahasan tipe data dan operator,
maka beberapa kali kita telah membuat kode program yang memaksa suatu tipe data berfungsi
sebagai tipe data lainnya.
Perhatikan kode program php berikut:
<?php
$a=12;
$b="9 kucing";
echo $a+$b; // 21
?>

Dalam kode diatas, saya mendefenisikan variabel $a sebagai integer (angka) dan variabel $b
sebagai string. Operasi penambahan seharusnya membutuhkan 2 inputan berupa angka, namun
seperti yang terlihat ketika program dijalankan, PHP dengan senang hati akan menjalankan perintah
tersebut tanpa mengeluarkan error. 12+9 kucing akan menghasilkan nilai 21.
Proses perubahan tipe data ini dikenal dengan istilah type juggling. Type Juggling dalam PHP adalah
sebuah proses untuk menentukan jenis tipe data yang cocok dengan operasi saat itu, dan PHP akan
menkonversinya secara langsung.
PHP akan mencoba menebak dan mengubah tipe data agar disesuaikan dengan peruntukannya.
Misalkan operator aritmatika seharusnya membutuhkan 2 buah inputan (atau operand) yang bertipe
angka (baik berupa integer maupun float). Namun apabila salah satu atau kedua operand itu bukan
bertipe angka, maka PHP akan mengkonversinya menjadi angka.
Seperti contoh program diatas, string 9 kucing akan dikonversi menjadi angka. Dan menghasilkan
angka 24 (aturan pengkonversian ini akan kita bahas sesaat lagi).
Sebagai contoh lainnya, perhatikan kode PHP berikut ini:
<?php
$a=12;
$b="9 kucing";
echo $a AND $b;
?>

Nilai dari variabel $a dan $b masih sama dengan contoh saya yang pertama, namun kali ini saya
membuat operator logika AND sebagai operasi yang akan diproses. Dan jika anda menjalankan
program diatas, di browser akan tampil angka 1. Dari manakah angka 1 ini berasal?

44 | P a g e

http://www.duniailkom.com_________________________________________________________
Operator AND membutuhkan 2 inputan bertipe boolean, yakni nilai TRUE atau FALSE. Namun karena
saya menggunakan tipe integer 12 dan type string 9 kucing, maka kedua operand ini akan
dikonversi menjadi TRUE. Karena TRUE AND TRUE adalah TRUE, maka hasil $a AND $b pada contoh
program diatas adalah TRUE.
Namun proses type juggling PHP belum selesai, karena perintah echo membutuhkan inputan
berupa
string,
bukan
nilai
boolean
TRUE.
Dan
PHP
akan
mengkonversi
boolean TRUE menjadistring 1.
Pemahaman tentang type juggling dalam PHP ini akan membantu kita untuk menghindari error kode
program karena perubahan tipe data yang tidak terdeteksi.

Pengertian Type Casting dalam PHP


Jika type juggling merupakan proses otomatis oleh PHP, maka Type Casting adalah proses
perubahan type data secara manual dengan menggunaan instruksi di dalam kode program.
Untuk merubah sebuah type data, kita menggunakan perintah casting dengan cara membuat nama
tipe data tujuan di dalam tanda kurung sebelum variabel yang akan diubah.
Perhatikan contoh kode program berikut:
<?php
$a=12;
$b="9 kucing";
echo $b;
//9 kucing
echo "<br />";
echo (integer) $b; //9
echo "<br />";
echo (boolean) $b; //1
?>

Pada baris ke -9, saya membuat echo (integer) $b, perintah ini adalah men-casting tipe data yang ada
didalam variabel $b (apapun tipe datanya) menjadi integer. Dan pada baris ke 9. saya mengcasting tipe data $b menjadi boolean.
Jenis-jenis perintah casting yang ada dalam PHP adalah sebagai berikut:
(int), (integer) mengubah tipe data menjadi integer
(bool), (boolean) mengubah tipe data menjadi boolean
(float), (double), (real) mengubah tipe data menjadi float
(string) mengubah tipe data menjadi string
(array) mengubah tipe data menjadi array
(object) mengubah tipe data menjadi object
(unset) mengubah tipe data menjadi NULL (PHP 5)

Aturan konversi data dalam PHP


Perubahan sebuah tipe data menjadi tipe data lainnya dalam PHP memiliki aturan tersendiri. Berikut
adalah aturan konversi tipe data dalam PHP
Konversi menjadi Integer
Jika tipe data asal adalah float, maka perubahan menjadi integer akan membuang tanda
desimal dari float. Contohnya, 3.94 akan menjadi integer 3.
Jika tipe data asal adalah boolean, maka nilai TRUE akan menjadi 1, dan FALSE manjadi 0.

45 | P a g e

http://www.duniailkom.com_________________________________________________________

Jika tipe data asal adalah string, maka string akan dipotong pada angka terakhir yang
ditemukan, mulai dari awal string. Namun jika diawal string tidak terdapat angka, maka string
akan dikonversi menjadi 0. Contohnya, 9 Kucing akan menjadi integer 9, 999 kucing akan
menjadi integer 999. kucing 99 akan menjadi 0, 14,5 kali gaji akan menjadi integer 14
(karena desimal akan dibuang dari string)
Jika tipe data asal adalah array kosong (tanpa data) maka jika dikonversi menjadi integer akan
menghasilkan 0, namun array dengan isi data minimal 1, akan dikonversi menjadi 1.

Konversi menjadi float


Secara garis besar, konversi menjadi float hampir sama dengan konversi menjadi integer,
dengan perbedaan jika tipe asal adalah string, maka angka desimal akan diperhitungkan,
misalnya 14,5 kali gaji akan dikonversi menjadi float 14,5
Konversi menjadi boolean
Jika tipe data asal adalah integer, maka angka 0 akan dikonversi menjadi FALSE, selain itu,
akan dikonversi menjadi TRUE. Contohnya 0 -> FALSE, 1 -> TRUE, -1 -> TRUE.
Jika tipe data asal adalah float, maka angka 0.0 akan dikonversi menjadi FALSE, selain itu, akan
dikonversi menjadi TRUE. Contohnya 0.0 -> FALSE, 1,9 -> TRUE, -1,6 -> TRUE.
Jika tipe data asal adalah string, maka string (tanpa karakter) akan dikonversi menjadi
FALSE, string 0 (string dengan karakter nol) akan dikonversi menjadi FALSE, selain itu akan
dikonversi menjadi TRUE. Contohnya: -> FALSE, ->TRUE (karakter spasi), 0 -> FALSE.
Jika tipe data asal adalah array, maka array kosong (tanpa data) akan dianggap FALSE, selain
itu array akan dikonversi menjadi TRUE.
Sebagai penutup, berikut adalah contoh-contoh konversi tipe data didalam PHP:
<!DOCTYPE html>
<html>
<head>
<title>Belajar Cara Konversi Tipe Data PHP</title>
</head>
<body>
<?php
// Konversi menjadi Integer
var_dump((int) 3.45); // 3
echo "<br />";
var_dump((int) "3.45"); // 3 (string 3.45)
echo "<br />";
var_dump((int) "9 Naga"); //9
echo "<br />";
var_dump((int) "Naga Bonar"); // 0
echo "<br />";
var_dump((int) "Wiro Sableng 212"); //0
echo "<br />";
var_dump((int) FALSE); // 0
echo "<br />";
var_dump((int) "1FALSE"); //1
echo "<br />";
var_dump((int) array()); // 0
echo "<br />";
var_dump((int) array("data")); //1
echo "<br />";
// Konversi menjadi Float

46 | P a g e

http://www.duniailkom.com_________________________________________________________
var_dump((float)
echo "<br />";
var_dump((float)
echo "<br />";
var_dump((float)
echo "<br />";
var_dump((float)
echo "<br />";
var_dump((float)
echo "<br />";
var_dump((float)
echo "<br />";
var_dump((float)
echo "<br />";
var_dump((float)
echo "<br />";
var_dump((float)
echo "<br />";

3); // 3
"3.45");

// 3.45

"9 Naga");

//9

"Naga Bonar"); // 0
"Wiro Sableng 212"); //0
FALSE); // 0
"1FALSE"); //1
array()); // 0
array("data")); //1

// Konversi menjadi Boolean


var_dump((bool) 3); // TRUE
echo "<br />";
var_dump((bool) 0); // FALSE
echo "<br />";
var_dump((bool) -1); // TRUE
echo "<br />";
var_dump((bool) ""); // FALSE
echo "<br />";
var_dump((bool) " "); //TRUE
echo "<br />";
var_dump((bool) "0"); // FALSE
echo "<br />";
var_dump((bool) "FALSE"); // TRUE (!) - karena string
echo "<br />";
var_dump((bool) array()); // FALSE
echo "<br />";
var_dump((bool) array("data")); // TRUE
echo "<br />";
?>
</body>
</html>

Dalam program diatas, saya membuat beberapa contoh konversi di dalam PHP.
Aturan tentang konversi tipe data dalam PHP ini (Type Juggling dan Type Casting) menutup tutorial
PHP sesi operator. Untuk selanjutnya, kita akan mempelajari tentang alur logika program dalam PHP,
atau dikenal dengan Struktur kontrol dalam PHP.

47 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 29: Pengertian dan Cara Penulisan


Struktur Logika IF dalam PHP
Struktur kontrol pertama yang akan kita bahas adalah struktur logika IF. Di dalam tutorial belajar PHP
kali ini kita akan mempelajari Pengertian dan Cara Penulisan Struktur IF dalam PHP.
Pengertian Struktur IF dalam PHP
Pengertian Struktur IF dalam bahasa pemograman adalah sebuah struktur logika untuk membuat
percabangan alur program. Secara sederhananya, dengan menggunakan struktur IF kita dapat
mengatur apakah sebuah perintah akan dijalankan atau tidak tergantung kepada kondisinya.
Sebagai contoh kita ingin membuat program sederhana, jika nama user adalah Andi, maka
tampilkan kata Selamat Datang, Andi. Berikut adalah penulisannya di dalam PHP:
<?php
$nama="Andi";
if ($nama=="Andi")
echo "Selamat datang Andi, di duniailkom...";
?>

Jika anda jalankan kode program diatas, maka di web browser akan tampil Selamat datang Andi, di
duniailkom..., namun apabila anda mengganti kode program diatas menjadi:
<?php
$nama="Joni";
if ($nama=="Andi")
echo "Selamat datang Andi, di duniailkom...";
?>

Maka tidak akan ada tampilan apa-apa di dalam web browser.


Struktur logika IF setidaknya membutuhkan 2 inputan, yaitu ekspresi logika (expression) dimana
berisi kondisi yang harus dipenuhi, dan perintah yang akan dijalankan (statement) jika kondisi logika
tersebut terpenuhi.
Berikut adalah struktur dasar penulisan alur logika IF dalam PHP:
if (expression)
statement

Expression dalam hal ini adalah kondisi yang harus dipenuhi agar statement dapat dijalankan. Hasil
dari expression harus tipe boolean. Selama hasil expression bernilai TRUE, maka statement akan
dijalankan, namun jika nilainya FALSE, maka statement tidak akan dijalankan.
Dalam pembuatan program, biasanya digunakan operasi perbandingan sebagai expression. Pada
contoh kita pertama, expression kita adalah $nama==Andi, yang bermaksud bahwa jika isi
variabel $nama sama dengan Andi maka jalankan perintah echo.
Namun expression IF ini tidak harus berupa operasi perbandingan, namun bisa berupa variabel, yang
selama hasilnya adalah TRUE, maka statement akan dijalankan. Perhatikan contoh berikut ini:
<?php
if (TRUE)
echo "Selamat datang Andi, di duniailkom...";
?>

Jika anda menjalankan program tersebut, kalimat Selamat datang Andi, di duniailkom akan selalu
tampil di web browser, karena kondisi IF akan selalu terpenuhi.
48 | P a g e

http://www.duniailkom.com_________________________________________________________

Aturan Penulisan Struktur IF dalam PHP


Penulisan sederhana dari struktur if adalah sebagai berikut:
<?php
if (expression)
statement;
?>

Expression ditulis di dalam tanda kurung, dan tidak diikuti dengan titik koma(;).
Apabila statement yang ingin dijalankan terdiri dari 2 baris atau lebih, kita harus memberikan tanda
kurung kurawal untuk menandai statement yang berhubungan dengan kondisi IF. Berikut contoh
strukturnya:
<?php
if (expression)
{
statement1;
statement1;
}
?>

Tanda kurung kurawal menandakan blok perintah yang dijalankan jika expression bernilai true.
Kita juga bisa membuat beberapa logika IF sekaligus untuk berbagai situasi:
<?php
if (expression1)
{
statement1;
statement2;
}
if (expression2)
{
statement3;
statement4;
}
?>

Untuk kasus yang lebih spesifik, kita bisa membuat struktur IF didalam IF, atau dikenal dengan nested
IF, seperti contoh berikut:
<?php
if (expression)

49 | P a g e

http://www.duniailkom.com_________________________________________________________
{
statement1;
if (expression)
{
statement1;
}
}
?>

Seberapa banyak kondisi IF didalam IF (nested) tidak dibatasi dalam PHP, namun perlu diperhatikan
penggunaan tanda kurung kurawal sebagai penanda bagian dari IF. Jika anda membuat struktur IFyang
kompleks, tanda kurung kurawal ini akan membuat bingung jika tidak dikelola dengan benar.
Kesalahan penutupan kurung kurawal akan membuat program tidak berjalan sesuai dengan keinginan.

Alternatif Penulisan Struktur Logika IF


Selain menggunakan tanda kurung kurawal sebagai tanda awal dan akhir IF, PHP menyediakan cara
penulisan lain untuk menandai akhir perintah IF, yaitu diawali dengan tanda titik dua (:) dengan
diakhiri dengan endif.
Berikut adalah format dasar penulisan IF:
<?php
if (expression) :
statement1;
statement1;
endif
?>

Perbedaan mendasar tentang cara penulisan ini ada di tanda titik dua (:) setelah penulisan expression,
dan kata kunci endif di akhir statement.
Anda bebas menggunakan format penulisan logika IF yang disediakan. Beberapa programmer
menggunakan alternatif penulisan IF dengan endif ini, karena dianggap lebih rapi.
Struktur logika IF ini juga memiliki percabangan kedua seandainya kondisi expression tidak terpenuhi.
Dalam tutorial selanjutnya kita akan mempelajari struktur logika ELSE.
Tutorial Belajar PHP Part 30: Pengertian dan Cara Penulisan Struktur Logika ELSE dalam PHP
Struktur kontrol IF yang telah kita bahas sebelumnya, memiliki percabangan logika kedua, yakni logika
ELSE. Di dalam tutorial belajar PHP kali ini kita akan mempelajari Pengertian dan Cara Penulisan
Struktur ELSE dalam PHP.

Pengertian Struktur ELSE dalam PHP


Jika Struktur IF digunakan untuk percabangan alur program dengan 1 pilihan saja, maka dengan
struktur ELSE kita dapat membuat percabangan kedua, yakni percabangan ketika kondisi IF tidak
terpenuhi, atau expressi IF menghasilkan nilai FALSE.
Berikut adalah contoh penggunaan logika ELSE dalam PHP:
<?php
$nama="Andi";
if ($nama=="Andi")
echo "Selamat Datang Andi...";

50 | P a g e

http://www.duniailkom.com_________________________________________________________
else
echo "Selamat Datang di duniailkom";
?>

Contoh kode program diatas, hampir sama dengan contoh kita pada tutorial tentang IF sebelumnya.
Namun kali ini saya menambahkan percabangan ELSE. Jika anda menjalankan kode program diatas,
maka di dalam web browser akan tampil Selamat Datang Andi, karena kondisi IF terpenuhi.
Perintah ELSE hanya akan dijalankan jika kondisi $nama bukan berisi ANDI.
Jika saya mengubah kode PHP diatas menjadi
<?php
$nama="Budi";
if ($nama=="Andi")
echo "Selamat Datang Andi...";
else
echo "Selamat Datang di duniailkom";
?>

Maka sekarang di web browser akan tampil Selamat Datang di duniailkom. Hal ini terjadi karena
kondisi if ($nama==Andi) tidak terpenuhi dan menghasilkan FALSE, sehingga perintah di bagian
ELSE-lah yang akan diekseskusi.

Aturan Penulisan Struktur IF-ELSE dalam PHP


Penulisan sederhana dari struktur IF-ELSE adalah sebagai berikut:
<?php
if (expression)
statement1;
else
statement2;
?>

Statement1 akan dijalankan hanya jika expression bernilai TRUE (kondisi expression terpenuhi).
Namun apabila kondisi expression tidak terpenuhi (bernilai FALSE), maka statement2 lah yang akan
dijalankan.
Jika struktur logika IF-ELSE terdiri dari beberapa baris, maka kita harus menambahkan penanda kurung
kurawal untuk menandai awal dan akhir statement. Penanda ini dibutuhkan untuk membatasi blok
perintah mana yang akan dijalankan ketika expression TRUE, dan blok perintah mana yang akan
dijalankan jika expression FALSE.
Berikut adalah penulisan dasar struktur IF-ELSE dengan pembatasan blok perintah:
<?php
if (expression)
{
statement1;
statement1;
}
else
{
statement2;
statement1;
}
?>

51 | P a g e

http://www.duniailkom.com_________________________________________________________

Penandaan statement ini akan menghasilkan error ketika kita salah atau lupa menempatkan
tandakurung kurawal. Perhatikan contoh kode PHP berikut ini:
<?php
$nama="Budi";
if ($nama=="Andi")
echo "Selamat Datang Andi...";
echo "Anda Memiliki 3 pesan di inbox...";
else
echo "Maaf, anda tidak memiliki hak akses";
?>

Kode PHP diatas akan menghasilkan error, karena PHP mendeteksi ada lebih dari satu baris setelah
struktur IF. Kode tersebut akan berjalan seperti yang diinginkan jika dirubah menjadi:
<?php
$nama="Budi";
if ($nama=="Andi")
{
echo "Selamat Datang Andi...";
echo "Anda Memiliki 3 pesan di inbox...";
}
else
{
echo "Maaf, anda tidak memiliki hak akses";
}
?>

Pada baris terakhir, saya juga menambahkan tanda kurung kurawal sebagai penanda awal dan akhir
dari ELSE, walaupun tanda kurung tersebut sebenranya tidak diperlukan (karena hanya bersisi satu
baris). Namun hal ini akan memudahkan kita seandainya ingin menambahkan perintah tambahan
pada bagian ELSE.

Cara Penulisan Alternatif Struktur ELSE


Sama seperti alternatif penulisan IF pada tutorial sebelumnya,selain menggunakan tanda kurung
kurawal penanda awal dan akhir blok IF, PHP juga menyediakan cara penulisan lain untuk blok perintah
ELSE, yaitu diawali dengan tanda titik dua (:) dan diakhiri dengan endif.
Berikut adalah format dasar penulisan IF:
<?php
if (expression) :
statement1;
statement2;
else:
statement3;
endif
?>

52 | P a g e

http://www.duniailkom.com_________________________________________________________
Perbedaan mendasar tentang cara penulisan ini ada di setelah penulisan expression dimana
dibutuhkan tanda titik dua (:), dan di akhir statement dengan kata kunci endif.
Anda bebas menggunakan format penulisan logika IF yang disediakan. Beberapa programmer memilih
alternatif penulisan IF dengan endif karena dianggap lebih rapi.
Dalam tutorial struktur alur program berikutnya, kita akan membahas struktur lanjutan dari IF,
yakni cara penulisan dan penggunaan struktur ELSE-IF.
Tutorial Belajar PHP Part 31: Pengertian dan Cara Penulisan Struktur Logika ELSE-IF dalam PHP
Struktur kontrol program IF terakhir yang akan kita bahas adalah stuktur ELSE-IF. Dalam tutorial PHP
kali ini kita akan mempelajari tentang Pengertian dan Cara Penulisan Struktur Logika ELSE-IF dalam
PHP.

Pengertian Struktur ELSE-IF dalam PHP


Stuktur ELSE-IF merupakan percabangan logika lanjutan dari IF. Dengan ELSE-IF kita bisa membuat
kode program yang akan menyeleksi berbagai kemungkinan yang bisa terjadi. Berikut adalah contoh
penggunaan ELSE-IF dalam PHP:
<?php
$a=15;
$b=8;
if ($a > $b)
{
echo "a lebih besar daripada b";
}
elseif ($a == $b)
{
echo "a sama besar dengan b";
}
else
{
echo "a lebih kecil daripada b";
}
?>

Dalam kode program diatas, saya membuat program sederhana untuk membandingkan 2 angka. IF
pertama akan melakukan pengecekan apakah $a > $b, jika hasilnya adalah FALSE, maka masuk ke IF
kedua (ditulis dengan elseif) apakah $a == $b, dan jika hasilnya adalah FALSE, maka dapat
dipastikan $a < $b.
Jika anda bertanya apa perbedaan IF dengan ELSEIF, maka jawabanya terletak di efisiensi pemrosesan.
Contoh diatas bisa juga kita buat tanpa menggunakan ELSEIF seperti berikut ini:
<?php
$a=15;
$b=8;
if ($a > $b)
{
echo "a lebih besar daripada b";
}
if ($a == $b)
{
echo "a sama besar dengan b";

53 | P a g e

http://www.duniailkom.com_________________________________________________________
}
else
{
echo "a lebih kecil daripada b";
}
?>

Perhatikan kode program pada baris ke-9, saya mengganti ELSEIF menjadi IF.
Perbedaannya adalah, untuk contoh kode PHP kita tanpa IF ini, seluruh kondisi akan dijalankan,
walaupun sebenarnya tidak perlu. Jika $a=15 dan $b=8, maka kondisi IF pertama akan terpenuhi ($a
> $b), dan kita ingin program PHP keluar dari IF. Namun karena perintah selanjutnya adalah IF, maka
PHP akan tetap memeriksa apakah ($a == $b).
Lain halnya jika kita menggunakan perintah ELSEIF, maka ketika sebuah kondisi telah dipenuhi, PHP
tidak perlu melakukan pengecekan terhadap kondisi IF lainnya.

Aturan Penulisan Struktur ELSE-IF dalam PHP


Dalam PHP, kita bisa menuliskan struktur ELSE-IF dengan elseif, atau else if (dipisahkan dengan spasi).
Kedua bentuk ini dianggap sama.
Format dasar penulisan ELSE-IF adalah sebagai berikut:
<?php
if (expression)
{
statement1;
}
elseif
{
statement2;
}
else
{
statement3;
}
?>

Seberapa banyak struktur ELSE-IF di dalam kode program tidak dibatasi, namun jika anda ada dalam
situasi yang membutuhkan percabangan ELSE IF yang lebih dari 5, mungkin anda bisa memecah nya
menjadi bagian-bagian kecil agar memudahkan alur logika program.

Cara Penulisan Alternatif Struktur ELSE-IF


Selain menggunakan tanda kurung kurawal sebagai tanda awal dan akhir ELSE-IF, PHP menyediakan
cara penulisan alternatif. Berikut format dasar penulisannya:
<?php
if (expression) :
statement1;
statement2;
elseif (expression):
statement3;
else
statement4;
endif

54 | P a g e

http://www.duniailkom.com_________________________________________________________
?>

Namun untuk cara penulisan ini, kita tidak bisa memisahkan penulisan ELSE-IF menjadi else if, tetapi
harus ditulis menyatu menjadi elseif.
<?php
$a=15;
$b=8;
if ($a > $b):
echo "a lebih besar daripada b";
else if ($a == $b): // akan menghasilkan error
echo "a sama besar dengan b";
else:
echo "a lebih kecil daripada b";
endif;
?>
Kode program diatas baru berhasil dieksekusi jika diubah menjadi:
<?php
$a=15;
$b=8;
if ($a > $b):
echo "a lebih besar daripada b";
elseif ($a == $b):
echo "a sama besar dengan b";
else:
echo "a lebih kecil daripada b";
endif;
?>

StrukurIF-ELSE-IF ini merupakan salah satu struktur terpenting dalam pemograman, dengan struktur
IF kita bisa membuat alur percabangan program tergantung dengan situasi yang dihadapi.
Selain struktur IF, PHP meyediakan struktur percabangan lainnya, yakni switch. Pembahasan
tentang struktur switch akan kita bahas dalam tutorial PHP selanjutnya.

55 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 32: Pengertian dan Cara Penulisan


Struktur Logika Switch dalam PHP
Struktur alur program yang akan kita bahas berikutnya adalah tentang pengertian dan cara penulisan
struktur Switch dalam PHP. Struktur switch ini dapat digunakan sebagai penggantistruktur IF.

Pengertian Struktur logika 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:
<?php
$a=3;
if ($a=="0") {
echo "Angka Nol";
}
elseif ($a=="1") {
echo "Angka Satu";
}
elseif ($a=="2") {
echo "Angka Dua";
}
elseif ($a=="3") {
echo "Angka Tiga";
}
elseif ($a=="4") {
echo "Angka Empat";
}
elseif ($a=="5") {
echo "Angka Lima";
}
else
echo "Angka diluar jangkauan";
?>

Tidak ada yang salah dari kode program tersebut, namun jika kita menggunakan switch, kode tersebut
dapat ditulis menjadi:
<?php
$a=3;
switch ($a)
{
case 0 :
echo "Angka Nol";
break;
case 1 :
echo "Angka Satu";
break;
case 2 :
echo "Angka Dua";
break;
case 3 :

56 | P a g e

http://www.duniailkom.com_________________________________________________________
echo "Angka
break;
case 4 :
echo "Angka
break;
case 5 :
echo "Angka
break;
default :
echo "Angka
break;
}
?>

Tiga";
Empat";
Lima";
diluar jangkauan";

Kedua kode program akan menghasilkan output yang sama, namun untuk kondisi logika yang diuji
merupakan kondisi sederhana, penulisan dengan switch lebih disarankan dibandingkan IF.
Aturan Penulisan Struktur Switch dalam PHP
Seperti yang terlihat dalam contoh sebelumnya, struktur switch terdiri dari beberapa bagian, berikut
format dasar penulisan switch dalam PHP:
switch ($var)
{
case value1:
statement1;
break;
case value2:
statement2;
break;
}

Setelah kata kunci switch, kita harus mencantumkan variabel yang akan diperiksa nilainya didalam
tanda kurung, lalu memulai block switch dengan kurung kurawal.
Tiap kondisi yang mungkin terjadi dicantumkan setelah kata kunci case, lalu diikuti dengan nilai yang
akan dibandingkan dengan nilai variabel switch. Jika kondisi sesuai, maka baris
programstatement 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 breakmemegang peranan penting untuk menghentikan switch.
Perhatikan contoh kode PHP berikut:
<?php
$a=1;
switch ($a)
{
case 0:
echo "Angka
case 1 :
echo "Angka
case 2 :
echo "Angka
case 3 :
echo "Angka
}
?>

Nol ";
Satu ";
Dua ";
Tiga ";

57 | P a g e

http://www.duniailkom.com_________________________________________________________

Program diatas akan memeriksa nilai dari $a, dan memberikan output tergantung kepada nilai $a
tersebut. Jika sekilas dilihat, maka keluaran program adalah: Angka Satu sesuai dengan nilai
variabel $a. Akan tetapi, jika anda menjalankan program diatas, PHP akan memberikan output berupa:
Angka Satu Angka Dua Angka Tiga

Apa yang terjadi? Hal ini terkait dengan bagaimana PHP menjalankan proses switch.
Ketika program dijalankan, PHP pertama kali akan memeriksa case 0, yaitu apakah $a sama dengan0,
jika tidak, PHP akan lanjut ke case 1, dan memeriksa apakah $a sama dengan 1. Jika iya, maka PHP
akan menjalankan echo Angka Satu, beserta seluruh perintah program pada case-case dibawahnya.
Hal ini mungkin terkesan aneh, namun adakalanya proses seperti inilah yang dibutuhkan.
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:
<?php
$a=1;
switch ($a)
{
case 0:
echo "Angka
break;
case 1 :
echo "Angka
break;
case 2 :
echo "Angka
break;
case 3 :
echo "Angka
break;
}
?>

Nol ";
Satu ";
Dua ";
Tiga ";

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:
<?php
$a=9;
switch ($a)
{
case 0:
echo "Angka Nol ";
break;
case 1 :
echo "Angka Satu ";
break;
case 2 :

58 | P a g e

http://www.duniailkom.com_________________________________________________________
echo "Angka Dua ";
break;
case 3 :
echo "Angka Tiga ";
break;
default :
echo "Angka diluar jangkauan";
break;
}
?>

PHP membolehkan kita menjalankan satu statement saja untuk case yang berlainan, seperti contoh
kode PHP berikut ini:
<?php
$a=3;
switch ($a)
{
case 0 :
case 1 :
case 2 :
case 3 :
echo "Angka berada di dalam range 0-3";
break;
case 4 :
case 5 :
case 6 :
case 7 :
echo "Angka berada di dalam range 4-7";
break;
default :
echo "Angka diluar jangkauan";
break;
}
?>

Didalam kode diatas, saya menyatukan beberapa case ke dalam 1 statement.


Penulisan case untuk struktur switch menyesuaikan dengan jenis tipe data yang akan diuji. Sampai
dengan bagian ini, saya hanya menggunakan contoh case untuk variabel dengan tipe angka, namun
jika anda menggunakan switch untuk tipe data string, maka kita harus menggunakan tanda kutip
untuk case.
Berikut contoh kode switch PHP untuk tipe data string:
<?php
$a=dua;
switch ($a)
{
case "nol":
echo "Angka 0 ";
break;
case "satu" :
echo "Angka 1 ";
break;
case "dua" :
echo "Angka 2 ";
break;

59 | P a g e

http://www.duniailkom.com_________________________________________________________
case "tiga" :
echo "Angka 3 ";
break;
default :
echo "Angka diluar jangkauan";
break;
}
?>

Perbedaan Antara struktur IF dengan Switch


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

60 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 33: Pengertian dan Cara Penulisan


Perulangan For dalam PHP
Dalam tutorial sebelumnya, kita telah membahas struktur logika IF dan struktur Switch yang
digunakan untuk percabangan program PHP. Dalam beberapa tutorial kedepan, kita akan membahas
tentang struktur perulangan atau dikenal juga dengan istilah loop. Untuk struktur perulangan
pertama yang kita bahas adalah Pengertian dan Cara Penulisan Perulangan For dalam PHP.

Pengertian Struktur Perulangan For dalam PHP


Struktur perulangan (atau dalam bahasa inggris disebut dengan loop) adalah instruksi program yang
bertujuan untuk mengulang beberapa baris perintah. Dalam merancang perulangan kode program,
kita setidaknya harus mengetahui 3 komponen, yaitu kondisi awal dari perulangan,perintah program
yang akan diulang, serta kondisi akhir dimana perulangan akan berhenti.
Di dalam bahasa pemograman, terdapat beberapa jenis instruksi perulangan, salah satunya:
struktur perulangan FOR.
Sebagai contoh sederhana untuk perulangan for, saya akan membuat program PHP untuk
menampilkan 10 baris kalimat Saya sedang belajar PHP. Berikut adalah kode program yang
digunakan:
<?php
for ($i= 1; $i <= 10; $i++)
{
echo "Saya sedang belajar PHP";
echo "<br />";
}
?>

61 | P a g e

http://www.duniailkom.com_________________________________________________________

Jika anda menjalankan perintah tersebut, maka di web browser akan tampil sebanyak 10 kalimat.
Kemampuan bahasa pemograman untuk melakukan perulangan ini sangat praktis jika yang kita
inginkan adalah mengulang beberapa perintah yang sama sebanyak beberapa kali.

Cara Penulisan Struktur Perulangan For dalam PHP


Seperti yang telah saya singgung sebelumnya, untuk kondisi perulangan for, kita setidaknya
membutuhkan 3 kondisi, yaitu di kondisi awal perulangan, kondisi pada saat perulangan, dan kondisi
yang harus dipenuhi agar perulangan berhenti.
Penulisan dasar format perulangan for PHP adalah sebagai berikut:
for (start; condition; increment)
{
statement;
}

Start 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 counterdigunakan
untuk mengatur akhir perulangan. Misalkan kita ingin menghentikan perulangan jika
variabel $i telah mencapai nilai 20, maka pada bagian condition ini kita membuat
62 | P a g e

http://www.duniailkom.com_________________________________________________________
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
antaratanda kurung kurawal ({ dan }) sebagai penanda bahwa bagian di dalam kurung
kurawal inilah yang akan dikenai proses perulangan.
Sebagai contoh, kita akan membuat perulangan untuk menampilkan angka 1-15 kedalam web
browser, berikut kode PHP yang digunakan:
<?php
for ($i= 1; $i <= 15; $i++)
{
echo $i;
echo "<br />";
}
?>

Jika anda menjalankan kode tersebut, maka di dalam web browser akan tampil urutan angka dari 1
sampai dengan 15.
Sebagai kondisi awal dari perulangan tersebut adalah $i= 1, dimana saya memberikan nilai 1 kepada
variabel $i. Variabel $i inilah yang akan menjadi counter atau penghitung dari perulangan for.
63 | P a g e

http://www.duniailkom.com_________________________________________________________
Untuk kondisi akhir, saya membuat $i <= 15, jadi selama variabel $i bernilai kurang atau sama dengan
15, maka perulangan akan terus dijalankan.
Sebagai increment, saya membuat $i++, dimana instruksi ini sama dengan $i=$i+1. instruksi ini akan
dijalankan pada setiap perulangan, sehingga dengan kata lain, setiap proses perulangan, $iakan
bertambah 1 angka.
Selain berfungsi sebagai counter, variabel $i juga dapat digunakan dalam proses perulangan, sehingga
dengan membuat perintah echo $i, maka dalam setiap perulangan, kita bisa menampilkan nilai $i pada
saat itu.
Sebagai contoh lain, saya ingin membuat perulangan untuk menampilkan angka 0-100, namun untuk
kelipatan 5, seperti: 0.5.10..dst, sampai dengan 100.
Berikut adalah contoh kode PHPnya:
<?php
for ($i= 0; $i <= 100; $i=$i+5)
{
echo $i;
echo "<br />";
}

Perbedaan penulisan struktur


for diatas dibandingkan contoh sebelumnya adalah pada bagianincrement, dimana saya membuat
kondisi increment yang menaik sebanyak 5 angka setiap perulangannya ($i=$i+5). Sehingga variabel
counter, $i akan bertambah sebanyak 5 pada setiap perulangan.
64 | P a g e

http://www.duniailkom.com_________________________________________________________
Kita juga bisa membuat perluangan dengan kondisi mundur, seperti contoh kode PHP berikut ini:
<?php
for ($i= 20; $i >= 1; $i--)
{
echo $i;
echo "<br />";
}

Di dalam kode tersebut, saya memulai nilai awal dari angka $i= 20, membuat perulangan selama $i >=
1, dan pada setiap perulangan, nilai $i akan dikurangi 1 angka ($i). Dengan kondisi tersebut, maka
variabel counter $i akan dikurangi 1 pada setiap perulangan.

Pengertian Infinity Loop


Ketika membuat kondisi akhir dari perluangan for, kita harus memperhatikan kapan kondisi akhir
tersebut dipenuhi. Jika kondisi akhir tidak pernah terpenuhi, maka perulangan akan berjalan
selamanya. Hal ini dikenal dengan infinity loop.
Seperti yang terjadi untuk kode seperti berikut ini:
<?php
for ($i= 20; $i >= 1; $i++)
{
echo $i;
echo "<br />";
}

Jika anda menjalankan kode tersebut, proses perulangan akan berjalan terus menerus, sehingga untuk
menghentikannya kita harus menutup paksa web browser.
Kesalahan dari struktur for tersebut adalah pada kondisi akhir dari perulangan, dimana saya
membuat $i >= 1, sehingga ketika nilai awal variabel counter $1 adalah 20, dan dalam tiap
perulangan $i ditambah 1, maka nilai $i akan selalu lebih besar dari 1, sehingga kondisi akhir tidak
akan pernah terpenuhi, dan $i >= 1 akan selalu benar.
Infinity loop ini kadang diperlukan untuk kasus-kasus tertentu. Namun kebanyakan kita akan
menghindari perulangan jenis ini.

Pengertian Nested Loop (Perulangan Bersarang)


Selain infinity loop, terdapat istilah lainnya yang sering digunakan dalam proses perulangan,
yakninested loop, atau terjemahan bebasnya: perulangan bersarang.
Nested loop adalah istilah pemograman yang berarti membuat perulangan di dalam perulangan.
Perhatikan contoh program berikut:
<?php
for ($i=0; $i <10; $i++)
{
for ($j=0; $j <10; $j++)
{
echo $i;
}
echo "<br />";

65 | P a g e

http://www.duniailkom.com_________________________________________________________
}

Dalam contoh program diatas, saya membuat perulangan di dalam perulangan. Counter $jdigunakan
untuk perulangan dalam (inner loop), dan counter $i digunakan di dalam perulangan luar(outer loop).
Nested loop ini biasanya digunakan dalam program yang membutuhkan pengaksesan kompleks,
seperti array 2 atau 3 dimensi.

Cara Alternatif Penulisan Perulangan For dalam PHP


Sama seperti struktur if, PHP juga memiliki alternatif perulangan tanpa menggunakan
tandakurung kurawal sebagai penanda blok program, dan menggantinya dengan endfor.
Berikut adalah contoh perulangan for dengan endfor:
<?php
for ($i= 1; $i <= 15; $i++) :
echo $i;
echo "<br />";
endfor;
?>

Perbedaan dengan penulisan for dengan kurung kurawal adalah penanda awal blok yang
menggunakan tanda titik dua (:) dan pada akhir blok dengan perintah endfor.
Instruksi for yang telah kita pelajari dalam tutorial PHP ini membutuhkan syarat yaitu kita telah
mengetahui berapa kali perulangan akan dilakukan pada saat penulisan program. Untuk kondisi
dimana kita tidak bisa menentukan berapa banyak proses perulangan yang terjadi, maka PHP
menyediakan struktur perulangan while.
Untuk lebih lanjut akan kita bahas pada tutorial belajar PHP berikutnya: Pengertian dan Cara Penulisan
Perulangan While dalam PHP.

66 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 34: Pengertian dan Cara Penulisan


Perulangan While dalam PHP
Dalam tutorial belajar PHP kali ini kita akan mempelajari Pengertian dan Cara Penulisan Perulangan
While dalam PHP.

Pengertian Struktur Perulangan While PHP


Untuk situasi dimana kita membutuhkan kondisi perulangan yang tidak dapat dipastikan berapa kali
perulangan akan dilakukan, maka kita tidak bisa menggunakan perulangan for.
PHP (dan juga bahasa pemograman lain) menyediakan stuktur perulangan while untuk kondisi
perulangan dimana banyaknya perulangan tidak dapat dipastikan pada saat penulisan program.
Misalkan kita ingin membuat program tebak angka, dimana user akan menebak 1 angka dari 1 sampai
10. Untuk kondisi ini, kita tidak dapat mengetahui berapa kali user akan mencoba untuk menebak
angka tersebut. Bisa saja user mencoba sebanyak 1, 5, atau 10 kali sebelum angka tersebut berhasil
diterka.
Atau misalkan kita ingin membuat program menemukan kata tertentu di dalam sebuah kalimat yang
dimasukkan oleh user. Banyak kata dalam kalimat tidak bisa kita tentukan pada saat pembuatan
program (karena akan diinput oleh user pada saat program berjalan), maka kita tidak bisa menentukan
seberapa banyak perulangan yang harus dilakukan untuk mencari kata tersebut.
Sampai dengan tutorial ini, kita belum bisa membuat kedua program diatas karena membutuhkan
beberapa fungsi PHP yang belum kita pelajari, namun sebagai contoh cara penggunaan struktur
while sederhana, berikut adalah kode PHP untuk perulangan while:
<?php
$i=1;
while ($i <= 10)
{
echo "$i";
echo "<br />";
$i=$i+1;
}
?>

67 | P a g e

http://www.duniailkom.com_________________________________________________________

Jika anda menjalankan kode program tersebut, maka di web browser akan tampil perulangan angka
1 sampai dengan 10. Dalam tutorial ini, kita akan membahas cara penulisan struktur whileini secara
lebih dalam.

Cara Penulisan Struktur Perulangan While PHP


Seperti terlihat pada contoh program sebelumnya, struktur while dalam PHP terdiri dari 2 bagian,
yaitu kondisi yang harus dipenuhi untuk proses perulangan, dan baris perintah yang akan diproses
secara berulang.
Struktur dasar perulangan while adalah sebagai berikut:
while (condition)
{
statement;
statement;
}

Condition adalah kondisi yang harus dipenuhi agar perulangan berlangsung. Kondisi ini mirip
seperti dalam perulangan for. Selama condition bernilai TRUE, maka perulangan akan terus
dilakukan. Condition ini akan diperiksa pada tiap perulangan, dan hanya jika hasilnya FALSE,
maka proses perulangan berhenti.
Statement adalah kode program yang akan diulang. Kita bisa membuat beberapa kode
program untuk menampilkan perintah seperti echo, atau perintah yang lebih kompleks.
Namun di dalam bagian ini harus ada baris program yang digunakan
sebagai penghentiperulangan. Misalkan pada bagian condition kita menggunakan variabel
counter $i, maka di bagian statement harus ada baris program yang
membuat condition bernilai FALSE, atau kalau tidak proses perulangan tidak akan pernah
berhenti (infinity loop).
Tanda kurung kurawal diperlukan untuk membatasi blok program yang akan diulang. Jika
statement hanya terdiri dari 1 baris, maka tanda kurung kurawal tidak diperlukan.
Sebagai pembahasan, saya akan menampilkan ulang contoh kode program sebelumnya, yakni:
68 | P a g e

http://www.duniailkom.com_________________________________________________________
<?php
$i=1;
while ($i <= 10)
{
echo "$i";
echo "<br />";
$i=$i+1;
}
?>

Pada baris ke-2 saya membuat sebuah variabel $i, dan memberikan nilai 1. Variabel $i inilah yang akan
digunakan sebagai counter untuk kondisi while.
Setelah penulisan while, selanjutnya didalam tanda kurung adalah condition yang harus dipenuhi agar
perulangan berjalan. Saya membuat kondisi ($i <= 10) sebagai penanda akhir while, yang berarti
selama variabel $i bernilai kurang dari 10, maka lakukan perulangan.
Penting untuk diperhatikan adalah logika pemograman untuk condition. While ($i <= 10) juga berarti
bahwa jika nilai variabel $i = 11, maka perulangan akan berhenti. Di dalam kode program, kita harus
membuat sebuah baris statement yang digunakan untuk terus menambahkan nilai $isupaya nilai $i
bisa mencapai angka lebih dari 10 untuk menghentikan perulangan.
Setelah membuat beberapa baris kode echo untuk menampilkan angka ke web browser pada baris
ke-5 dan 6, saya menambahkan kode $i=$i+1 pada baris ke-7 Baris inilah yang akan menambahkan
nilai variabel counter $i sebanyak 1 angka pada tiap perulangan, sehingga pada perulangan ke 10,
nilai $i akan menjadi 11. Dan kondisi while akan menghasilkan FALSE, sehingga proses perulangan
berhenti.
Kesalahan dalam memahami logika while sering menghasilkan perulangan yang akan memproses
secara terus menerus (infinity loop).
Anda juga bebas menentukan awal dari variabel counter $i, misalnya untuk mulai dari angka 100 dan
mundur ke belakang seperti contoh berikut:
<?php
$i=100;
while ($i >= 0)
{
echo "$i";
echo "<br />";
$i-=8;
}
?>

69 | P a g e

http://www.duniailkom.com_________________________________________________________

Perulangan while tersebut akan menghasilkan angka menurun dari 100 sampai dengan 0, dimana
pada setiap perulangan nilai 100 akan dikurangi dengan 8.

Penulisan Nested Loop untuk While


Walaupun struktur while agak jarang digunakan untuk nested loop, anda bisa membuat perulangan
bersarang dengan struktur while, seperti contoh berikut ini:
<?php
$i=0;
while ($i < 10)
{
$j=0;
while ($j < 10)
{
echo $i;
$j++;
}
echo "<br />";
$i++;
}

70 | P a g e

http://www.duniailkom.com_________________________________________________________

Dalam kode diatas, saya membuat perulangan yang sama seperti contoh nested loop pada tutorial
perulangan for, dimana kode diatas akan menampilkan angka 0-9 sebanyak 9 angka.
Jika anda membandingkan dengan struktur for untuk hasil yang sama, perulangan for akan lebih
mudah dipahami dibandingkan perulangan while diatas.

Cara Penulisan Alternatif Struktur Perulangan While


Sebagai cara penulisan alternatif, PHP menyediakan penulisan blok while yang biasanya menggunakan
tanda kurung kurawal dengan endwhile.
Berikut adalah contoh penulisan alternatif struktur while dalam PHP:
<?php
$i=1;
while ($i <= 10):
echo "$i";
echo "<br />";
$i=$i+1;
endwhile;
?>

Untuk penulisan alternatif ini, saya mengganti tanda kurung kurawal untuk menandai
blok whiledengan tanda titik dua (:) pada awal perulangan, dan perintah endwhile di akhir blok.
Setelah mempelajari struktur perulangan for dan while, PHP masih menyediakan 1 buah struktur
perulangan dasar lainnya, yakni perulangan do-while. Dalam tuturial selanjutnya kita akan
mempelajari penhertian dan cara penulisan struktur perulangan do-while dalam PHP.

71 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 35: Pengertian dan Cara Penulisan


Perulangan Do-While dalam PHP

truktur dasar perulangan terakhir yang akan kita bahas adalah perulangan do-while. Di dalam
tutorial Pengertian dan Cara Penulisan Struktur Perulangan Do-While dalam PHP ini kita akan
membahasnya lebih dalam.

Pengertian Perulangan Do-While dalam PHP


Perulangan while dan do-while pada dasarnya hampir sama. Perbedaan terletak pada lokasi
pengecekan kondisi perulangan.
Dalam struktur while, pengecekan untuk kondisi perulangan di lakukan di awal, sehingga jika kondisi
tidak terpenuhi, maka perulangan tidak akan pernah dijalankan.
Namun pada perulangan do-while, pengecekan kondisi akan dilakukan di akhir perulangan, sehingga
walaupun kondisi adalah FALSE, perulangan akan tetap berjalan minimal 1 kali.
Sebagai perbandingan, perhatikan contoh struktur while berikut ini:
<?php
$i=1000;
while ($i <= 10)
{
echo "$i";
echo "Tidak akan tampil di browser";
$i=$i+1;
}
?>

Kode program diatas tidak akan menampilkan apa-apa, karena kondisi while ($i<=10) sudah
menghasilkan nilai FALSE pada awal program (karena saya sudah mendefenisikan nilai $i=1000, pada
baris pertama)
Namun jika kode diatas kita ubah menjadi do-while, maka berikut hasilnya:
<?php
$i=1000;
do
{
echo "$i";
echo "Akan tampil di browser";
$i=$i+1;
} while ($i <= 10);
?>

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 whilemenghasilkan FALSE.

Cara Penulisan Struktur Perulangan Do-While PHP


Penulisan struktur do-while mirip dengan struktur while, namun kita menambahkan perintah dodi
awal struktur. Berikut adalah format dasar penulisan struktur do-while dalam PHP:

72 | P a g e

http://www.duniailkom.com_________________________________________________________
do {
statement;
statement;
} while (condition);

Setelah perintah do, di dalam blok kurung kurawal adalah statement. Statement adalah kode program
yang akan diulang. Kita bisa membuat beberapa kode program untuk menampilkan perintah
seperti echo, atau perintah yang lebih kompleks. Namun di dalam bagian ini harus ada baris program
yang digunakan sebagai penghenti perulangan.
Condition adalah kondisi yang harus dipenuhi agar perulangan berlangsung. Selama condition
bernilai TRUE, maka perulangan akan terus dilakukan. Condition ini akan diperiksa pada tiap
perulangan, dan hanya jika hasilnya FALSE, maka proses perulangan berhenti.
Sebagai contoh sederhana perulangan do-while, berikut adalah kode perulangan untuk menampilkan
angka 1 sampai dengan 10 pada web browser:
<?php
$i=1;
do
{
echo "$i";
echo "<br />";
$i=$i+1;
} while ($i <= 10);
?>

Anda juga bisa menggunakan struktur do-while untuk perulangan bersarang (nested loop) seperti
pada tutorial perulangan for dan while.
Sama seperti perulangan while, dalam perancangan perulangan do-while ini kita harus memahami
alur logika program yang dibuat. Karena tidak seperti perulangan for dimana jumlah perulangan telah
di tentukan di awal, untuk struktur do-while banyak perulangan di tentukan pada saat program
mencapai kondisi FALSE. Kesalahan dalam alur logika akan membuat PHP tidak pernah berhenti
memproses perulangan.
73 | P a g e

http://www.duniailkom.com_________________________________________________________

74 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 36: Fungsi dan Cara Penulisan Perintah
Break Dalam Perulangan PHP

alam tutorial kali ini kita akan membahas tantang perintah break yang digunakan untuk
menghentikan perulangan for, while, maupun do-while di dalam PHP.

Fungsi Perintah Break Dalam Perulangan PHP


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.
Misalkan kita memiliki nama-nama mahasiswa yang tersimpan di dalam sebuah array atau di dalam
database. Proses pencarian sederhana dapat dirancang dengan melakukan pencocokan secara
berulang dimulai dari nama pertama, kedua, dan seterusnya. Perulangan ini akan dilakukan sebanyak
daftar mahasiswa yang ada.
Akan tetapi, jika nama yang dicari telah ditemukan, proses perulangan seharusnya dapat dihentikan
saat itu juga, karena tujuan pencarian nama telah selesai.
Untuk keperluan inilah PHP menyediakan instruksi break. Break berfungsi sebagai perintah
kepada web server untuk menghentikan perulangan secara prematur, yaitu menghentikan
perulangan di luar dari yang direncanakan.
Cara Penulisan Perintah Break
Perintah break dapat di letakkan di posisi manapun di dalam perulangan, namun biasanya kita akan
membuat logika IF untuk menentukan kapan perintah break akan dijalankan.

Contoh Penggunaan Break dalam Perulangan For


Berikut adalah contoh program perulangan for dengan menggunakan perintah break:
<?php
for ($i=0; $i <100; $i++)
{
if ($i==13)
{
break;
}
echo $i;
echo "<br />";
}

75 | P a g e

http://www.duniailkom.com_________________________________________________________

Dalam program diatas, saya membuat perulangan for dari 0 sampai 100, dan dalam keadaan normal,
perintah for ($i=0; $i <100; $i++) akan memproses perulangan sebanyak 100 kali.
Namun pada baris ke-4 saya menambahkan sebuah struktur IF yang menyatakan bahwa jika nilai
variabel counter $i sama dengan 13, maka break. Perintah break akan membuat
perulangan forlangsung dihentikan, dan kita hanya menghasilkan perulangan sampai angka 13.

Contoh Penggunaan Break dalam Perulangan While


Sama seperti perulangan for, perintah break digunakan untuk menghentikan perulangan while
secara prematur, atau sebelum kondisi pada bagian condition terpenuhi.
Menggunakan contoh yang sama dengan struktur perulangan for, berikut adalah contoh
penggunaan break untuk perulangan while:
<?php
$i=0;
while ($i < 100)
{
$i++;
if ($i==13)
{
break;
}
echo $i;
echo "<br />";
}

Dalam contoh kode program diatas, perulangan akan berhenti pada iterasi ke-13. Dimana saya
membuat sebuah kondisi ketika variabel counter bernilai 13, maka break. Perintah break akan
menghentikan perulangan secara paksa.
76 | P a g e

http://www.duniailkom.com_________________________________________________________

Cara Penggunaan Instruksi Break pada Perulangan Bersarang (Nested Loop)


Untuk perulangan bersarang (nested loop), instruksi break bisa bermakna ganda, yaitu apakah kita
ingin menghentikan perulangan luar, atau perulangan dalam.
Agar lebih mudah dipahami, berikut adalah contoh nested loop yang pernah kita bahas pada tutorial
perulangan for:
<?php
for ($i=0; $i <10; $i++)
{
for ($j=0; $j <10; $j++)
{
echo $i;
}
echo "<br />";
}

Dalam perulangan tersebut, variabel counter $i digunakan untuk perulangan luar (outer loop),
dan variabel counter $j digunakan untuk perulangan dalam (inner loop).
Jika kita membuat perintah break pada perulangan $j (inner loop), maka yang akan dihentikan hanya
perulangan $j saja, seperti pada contoh program berikut ini:
<?php
for ($i=0; $i <10; $i++)
{
for ($j=0; $j <10; $j++)
{
if ($i==4)
{
break;
}
echo $i;
}

77 | P a g e

http://www.duniailkom.com_________________________________________________________
echo "<br />";
}

Dengan memberikan perintah break pada perulangan $j, maka perulangan $j akan berhenti pada
angka 4, namun perulangan $i akan terus berjalan.
Bagaimana jika kita juga ingin menghentikan perulangan $i?
Caranya adalah dengan mengubah perintah break diatas menjadi break 2. Angka 2 bertujuan untuk
memberitahu PHP bahwa perintah break ditujukan untuk 2 level perulangan diatasnya.
Berikut adalah contoh program sebelumnya, dengan ditambahkan break 2:
<?php
for ($i=0; $i <10; $i++)
{
for ($j=0; $j <10; $j++)
{
if ($i==4)
{
break 2;
}
echo $i;
}
echo "<br />";
}

78 | P a g e

http://www.duniailkom.com_________________________________________________________

Jika anda membuat nested loop dengan 3 tingkatan, atau 3 level, maka kita bisa menggunakan
perintah break 3 untuk keluar dari perulangan terdalam.
Perintah atau instruksi break berguna untuk menghentikan perulangan secara langsung, namun jika
yang kita inginkan adalah melompati satu kali proses perulangan tanpa menghentikan seluruh
proses, PHP menyediakan perintah continue.
Perintah continue ini akan kita bahas secara mendalam di tutorial belajar PHP selanjutnya: Fungsi dan
Cara Penulisan Perintah Continue Dalam Perulangan PHP.

79 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 37: Fungsi dan Cara Penulisan Continue
Dalam Perulangan PHP
Dalam tutorial kali ini kita akan membahas tentang Fungsi Perintah Continue Dalam Perulangan PHP.
Fungsi Perintah Continue dalam PHP
Perintah continue juga digunakan untuk men-interupsi perulangan dalam PHP, namun jika
perintahbreak 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:
<?php
for ($i=0; $i <10; $i++)
{
if ($i==7)
{
continue;
}
echo $i;
echo "<br />";
}

Contoh perulangan diatas mirip dengan contoh pada perulangan break. Setelah perintah for, saya
membuat sebuah kondisi IF yang jika variabel counter $i bernilai 7, maka jalankan continue.
Arti dari continue ini adalah sebuah instruksi kepada PHP untuk melewati sisa perintah dalam
perulangan, dan langsung lompat ke nilai counter berikutnya, yakni 8. Dari hasil program, anda tidak
akan melihat angka 7 ditampilkan.

Cara Penggunaan Continue pada Nested Loop


Sama seperti perintah break, perintah continue juga bisa digunakan untuk nested loop, dan kita
menggunakan angka setelah perintah continue untuk menginstruksikan level kedalaman loop.
Berikut adalah contoh penggunaan perintah continue dalam nested loop
<?php

80 | P a g e

http://www.duniailkom.com_________________________________________________________
for ($i=0; $i <10; $i++)
{
for ($j=0; $j <10; $j++)
{
if ($i==4)
{
continue 2;
}
echo $i;
}
echo "<br />";
}

Dalam contoh diatas, perintah continue 2 akan menginstruksikan kepada PHP untuk tidak
mengeksekusi perulangan for pada perulangan terluar, yakni jika $i sama dengan 4, dan melanjutkan
kedalam iterasi selanjutnya, yakni $i=5.
Instruksi break dan continue ini melengkapi tutorial tentang perulangan dalam PHP. Selanjutnya, saya
akan membahas tentang perulangan khusus untuk array, yaitu perulangan foreach.
Tutorial Belajar PHP Part 38: Pengertian dan Fungsi Perulangan Foreach dalam PHP
Setelah mempelajari perulangan dasar seperti for, while, dan do-while, PHP menyediakan perulangan
khusus untuk array, yaitu perulangan foreach. Dalam tutorial kali ini kita akan mempelajari Pengertian
dan Cara Penulisan Perulangan Foreach dalam PHP.

Pengertian Perulangan Foreach dalam PHP


Array merupakan tipe data yang sering digunakan dalam membuat program menggunakan PHP.
Kemampuan array dalam menyimpan banyak data dalam satu variabel akan sangat berguna untuk
menyederhanakan dan menghemat penggunaan variabel.
Untuk menampilkan dan memproses data dari array, kita bisa memanfaatkan perulangan for, seperti
contoh berikut ini:
<?php
$nama = array("Andri","Joko","Sukma","Rina","Sari");
for ($i=0; $i <5; $i++)

81 | P a g e

http://www.duniailkom.com_________________________________________________________
{
echo "$nama[$i]";
echo "<br />";
}
?>

Contoh diatas membuat perulangan for sebanyak 5 kali, dengan variabel counter $i dimulai dari angka
0 (karena index array dimulai dari angka 0).
Namun sebagai cara alternatif untuk menampilkan array, saya akan mengubah kode diatas dengan
menggunakan perulangan foreach:
<?php
$nama = array("Andri","Joko","Sukma","Rina","Sari");
foreach ($nama as $val)
{
echo "$val";
echo "<br />";
}
?>

Perulangan foreach diatas akan menampilkan semua isi array dengan perintah yang lebih singkat
daripada menggunakan perulangan for.
Cara Penulisan Perulangan Foreach dalam PHP
Perulangan foreach merupakan perulangan khusus untuk pembacaan nilai array. Seperti yang telah
kita bahas pada tutorial tentang tipe data array: Mengenal Tipe Data Array dan Cara Penulisan Array
dalam PHP, setiap array memiliki pasangan key dan value. Key adalah posisi dari array,
danvalue adalah isi dari array.
Format dasar perulangan foreach adalah:
foreach ($nama_array as $value)
{
statement (...$value...)
}

$nama_array adalah nama dari array yang telah didefenisikan sebelumnya.

82 | P a g e

http://www.duniailkom.com_________________________________________________________

$value adalah nama variabel perantara yang berisi data array pada perulangan tersebut.
Anda bebas memberikan nama untuk variabel perantara ini, walaupun pada umumnya banyak
programmer menggunakan $value, atau $val saja.
Berikut adalah contoh perulangan foreach sebelumnya:
<?php
$nama = array("Andri","Joko","Sukma","Rina","Sari");
foreach ($nama as $val)
{
echo "$value";
echo "<br />";
}
?>

Pada contoh diatas, saya mendefenisikan variabel array $nama dengan format singkat, dan tanpa
mendefenisikan key secara tertulis. Variabel $val merupakan variabel perantara dalam contoh diatas.
Perulangan tersebut akan diulang sebanyak data yang terdapat di dalam array, sehingga kita tidak
perlu harus menghitung seberapa banyak perulangan yang harus dilakukan.
Jika anda membutuhkan nilai key dari array untuk dapat diproses, maka PHP menyediakan bentuk
kedua dari perulangan foreach, dengan format dasar penulisan sebagai berikut:
foreach ($nama_array as $key => $value)
{
statement ($key...$value...)
}

Perbedaan dengan format sebelumnya, disini PHP menyediakan variabel perantara kedua, yaitu
variabel $key. Variabel $key ini menampung nilai key dari array.
Berikut adalah contoh penggunaannya:
<?php
$nama = array(
1=>"Andri",
6=>"Joko",
12=>"Sukma",
45=>"Rina",
55=>"Sari");
foreach ($nama as $kunci =>$isi)
{
echo "Urutan ke-$kunci adalah $isi";
echo "<br />";
}
?>

83 | P a g e

http://www.duniailkom.com_________________________________________________________

Variabel array $nama saya defenisikan menggunakan key yang berbeda-beda. Pada
perulanganforeach, saya membuat variabel perantara $kunci =>$isi, sehingga didalam perulangan,
variabel$kunci akan berisi key dari array, dan variabel $isi akan berisi nilai dari array.
Proses menampilkan dan memproses array akan lebih mudah dengan menggunakan perulangan
foreach dibandingkan perulangan dasar seperti for. Terlebih lagi kita tidak perlu mencari tau seberapa
banyak perulangan harus dilakukan, karena perulangan foreach akan otomatis berhenti pada data
terakhir dari array.

Tutorial Belajar PHP Part 39: Pengertian Fungsi (function) PHP


dan Cara Penggunaan Fungsi PHP
Fungsi (function) merupakan bagian penting dalam pemograman. Dalam tutorial PHP kali ini, kita akan
membahas tentang pengertian, dan cara penggunaan fungsi di dalam PHP.

Pengertian Fungsi (Function) dalam PHP


Dalam merancang kode program, kadang kita sering membuat kode yang melakukan tugas yang sama
secara berulang-ulang, seperti membaca tabel dari database, menampilkan penjumlahan, dan lainlain. Tugas yang sama ini akan lebih efektif jika dipisahkan dari program utama, dan dirancang menjadi
sebuah fungsi.
Fungsi (atau Function) dalam bahasa pemograman adalah kode program yang dirancang untuk
menyelesaikan sebuah tugas tertentu, dan merupakan bagian dari program utama. Kita dapat
membuat fungsi sendiri, atau menggunakan fungsi yang dibuat oleh programmer lain.
Dalam dunia pemograman terdapat istilah lazy progamming yang artinya bukanlah programmer
yang malas. Tetapi, daripada membuat kode program umum dari dasar, kita bisa
menggunakanfungsi 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.

Cara Menggunakan Fungsi PHP


Menggunakan fungsi dalam teori pemograman sering juga disebut dengan istilah memanggil fungsi
(calling a function). Fungsi dipanggil dengan menulis nama dari fungsi tersebut, dan diikuti
84 | P a g e

http://www.duniailkom.com_________________________________________________________
dengan argumen (jika ada). Argumen ditulis di dalam tanda kurung, dan jika jumlah argumen lebih
dari satu, maka diantaranya dipisahkan oleh karakter koma.
Setelah memproses nilai inputan, hampir semua fungsi akan memberikan nilai hasil pemrosesan
tersebut (walaupun ada fungsi yang tidak memberikan nilai). Cara fungsi memberikan nilainya ini
sering disebut dengan mengembalikan nilai (return a value). Nilai yang dikembalikan oleh sebuah
fungsi dapat ditampung ke dalam variabel, atau langsung ditampilkan ke web browser.

Pengertian Argumen dan Parameter dalam Fungsi PHP


Sebuah fungsi dalam memproses data, kadang memerlukan beberapa inputan atau nilai masukan.
Inputan inilah yang dimaksud dengan argumen. Sebuah fungsi bisa membutuhkan 1, 2, atau
5argumen, namun bisa juga tidak memerlukan argumen sama sekali.
Parameter adalah sebutan lain untuk argumen. Perbedaannya, parameter merujuk kepada inputan
fungsi pada saat pendefenisian fungsi tersebut, dan agrumen adalah sebutan untuk inputan fungsi
pada saat pemanggilan fungsi. Kita akan membahas perbedaan Argumen danParameter secara lebih
dalam pada tutorial selanjutnya, namun pada dasarnya argumen danparameter merujuk kepada hal
yang sama, yaitu inputan kepada fungsi dan kedua istilah ini sering dipertukarkan.

Contoh Pemanggilan Fungsi PHP


Sebagai latihan dan prakter dalam menggunakan fungsi, Berikut adalah format dasar pemanggilan,
dan pengembalian nilai fungsi:
$varibel_hasil_fungsi = nama_fungsi(argumen1, argumen2, argumen3)
$varibel_hasil_fungsi adalah variabel yang akan menampung hasil pemrosesan fungsi.
Tergantung fungsinya, hasil dari sebuah fungsi bisa berupa angka, string, array, bahkan objek.
nama_fungsi adalah nama dari fungsi yang akan dipanggil
argumen1, argumen2 adalah nilai inputan fungsi. Banyaknya argumen yang dibutuhkan,
tergantung kepada fungsi tersebut. Jika sebuah fungsi membutuhkan argumen 2 buah angka,
maka kita harus menginputnya sesuai dengan aturan tersebut, atau jika tidak, PHP akan
mengeluarkan error.
Sebagai contoh, PHP menyediakan fungsi akar kuadrat, yakni sqrt(), berikut adalah cara
penggunaannya:
<?php
$akar_kuadrat = sqrt(49);
echo "Akar kuadrat dari 49 adalah $akar_kuadrat";
// Akar kuadrat dari 49 adalah 7
?>

Dalam contoh diatas, fungsi sqrt() akan menghitung akar kuadrat dari nilai argumen yang diinput. Saya
menambahkan argumen 49 sebagai inputan.
Nilai hasil dari fungsi sqrt(49), selanjutnya di tampung dalam variabel $akan_kuadrat, yang kemudian
ditampilkan ke dalam web browser.
Selain ditampung di dalam variabel, kita bisa menampilkan hasil fungsi langsung ke web browser,
seperti contoh berikut:
<?php
echo "12 pangkat 2 adalah: ".pow(12,2);
// 12 pangkat 2 adalah: 144

85 | P a g e

http://www.duniailkom.com_________________________________________________________
?>

Fungsi pow() adalah fungsi pemangkatan matematika bawaan PHP. Fungsi ini membutuhkan 2
argumen, argumen pertama adalah nilai awal yang ingin dihitung, dan argumen kedua adalah nilai
pangkat. Pow(12,2) sama dengan 12 kuadrat.
Perlu juga diperhatikan adalah tipe parameter yang dibutuhkan oleh sebuah fungsi. Seperti 2 contoh
kita diatas, fungsi sqrt() dan pow() adalah fungsi matematika. Kedua fungsi ini hanya bisa memproses
parameter dengan tipe angka (interger dan float). Jika anda memasukkan parameter jenis string,
maka PHP akan mengeluarkan error.
Jumlah dan urutan argumen juga harus sesuai dengan yang dibutuhkan oleh fungsi. Jika sebuah fungsi
hanya membutuhkan 1 argumen, maka kita tidak bisa menambahkan argumen kedua, kecuali ada
argumen yang bersifat opsional (dapat diabaikan).
Dalam tutorial selanjutnya, kita akan mempelajari cara membuat fungsi di dalam PHP.
Tutorial Belajar PHP Part 40: Cara Penulisan dan Pembuatan Fungsi PHP
Selain menggunakan fungsi bawaan PHP, untuk keperluan yang lebih khusus kita bisa membuat fungsi
sendiri. Dalam tutorial kali ini kita akan membahas Cara Penulisan dan Pembuatan Fungsi dalam PHP.

Cara Penulisan Fungsi dalam PHP


Sebuah fungsi merupakan kode program yang dirancang untuk menyelesaikan sebuah tugas tertentu.
Tujuan memisahkan sebuah kode menjadi fungsi adalah untuk kepraktisan dan kemudahan dalam
membuat program utama. Karena jika dijadikan fungsi, maka untuk menjalankan tugas yang sama,
kita tinggal memanggil fungsi tersebut, tanpa perlu membuat kembali kode programnya.
Untuk membuat fungsi di dalam PHP, berikut adalah format dasar pembuatan fungsi:
function nama_fungsi ($parameter1, $parameter2)
{
// kode program fungsi
return $nilai_akhir
}

Kata function adalah instruksi kepada PHP bahwa kita akan membuat fungsi
nama_fungsi adalah nama dari fungsi yang akan ditulis
$parameter1, $parameter2 adalah variabel perantara yang akan menyimpan inputan yang
diperlukan dalam pemrosesan fungsi (argumen). Tergantung kebutuhan, anda bebas
merancang seberapa banyak parameter yang dibutuhkan.
return adalah perintah khusus untuk fungsi, dimana kata return menginstruksikan kepada
PHP bahwa pemrosesan fungsi telah selesai. return $nilai_akhir berarti bahwa fungsi akan
mengembalikan $nilai_akhir sebagai hasil dari fungsi.
Perhatikan juga bahwa fungsi ini berada di dalam blok program yang ditandai dengan kurung kurawal
pada baris pertama dan terakhir fungsi.
Agar lebih mudah dipahami, kita akan mencoba membuat beberapa fungsi PHP sederhana.
Contoh Pembuatan Fungsi PHP
Sebagai contoh pertama fungsi PHP, saya akan membuat fungsi sederhana untuk perkalian 2 angka.
Nama fungsi ini adalah perkalian, dan membutuhkan 2 argumen dengan tipe data angka
(integer atau float), berikut adalah cara pembuatan dan penggunaan fungsi perkalian:
<?php
//pembuatan fungsi
function perkalian($angka1, $angka2)
{

86 | P a g e

http://www.duniailkom.com_________________________________________________________
$a= $angka1;
$b= $angka2;
$hasil= $a*$b;
return $hasil;
}
//pemanggilan fungsi
$hasil=perkalian(4,5);
echo "Perkalian 4 x 5 adalah $hasil";
echo "<br />";
echo "Perkalian 7 x 2 adalah ".perkalian(7,2);
?>

Pada baris ke-3, saya mendefenisikan fungsi perkalian() yang memerlukan 2 parameter.S
Parameter ditulis sebagai variabel, dan anda bebas menentukan nama variabel ini, dalam contoh
diatas, parameter untuk fungsi perkalian() adalah $angka1 dan $angka2.
Di dalam fungsi perkalian(), saya membuat variabel $a dan $b yang digunakan untuk menampung
nilai $angka1 dan $angka2, pemindahan variabel ini sebenarnya tidak diperlukan, namun anda akan
sering menemukan hal ini di dalam berbagai fungsi. Biasanya pemindahan ini dilakukan agar lebih
mudah dan singkat dalam menggunakan variabel pada pemrosesan fungsi.
Variabel $hasil digunakan untuk menampung nilai akhir dari perkalian $a*$b, dan hasilnya dikembalikan dengan perintah return $hasil. Return secara otomatis menutup fungsi, dan jika anda
masih memiliki kode program setelah perintah return, perintah tersebut tidak akan diproses, oleh
karena itu perintah return harus diletakkan di akhir penulisan fungsi.
Selanjutnya pada baris ke-12, saya memanggil fungsi perkalian() dengan menyimpan nilai
kembaliannya ke dalam variabel $hasil, atau bisa dipanggil secara langsung dalam satu baris perintah
echo, seperti pada baris ke-15.
Sebagai contoh fungsi kedua, saya akan membuat fungsi untuk menentukan luas lingkaran. Seperti
yang kita ketahui, luas lingkaran didapat dengan rumus: pi*jari-jari*jari-jari. Berikut adalah program
untuk menghitung luas lingkaran:
<?php
//pemanggilan fungsi
echo "Luas Lingkaran dengan jari-jari 7cm = ".luas_lingkaran(7)."cm";
//pembuatan fungsi
function luas_lingkaran($jari2)
{
return M_PI*$jari2*$jari2;
}
?>

Saya memulai program dengan langsung memanggil fungsi luas_lingkaran(7), padahal fungsi tersebut
belum didefenisikan. Hal ini dimungkinkan karena pada saat kode PHP dijalankan, web server akan
men-compile fungsi-fungsi yang ada terlebih dahulu. Sehingga kita bisa memanggil fungsi yang di
defenisikan setelah dipanggil.
Pada fungsi luas_lingkaran(), satu-satunya argumen yang diperlukan adalah panjang jari-jari
lingkaran. M_PI adalah konstanta matematis yang disediakan PHP, yang nilainya sama dengan
konstanta pi, yaitu 3,14. Namun anda juga bisa mengubahnya menjadi 3.14*$jari2*$jari2.

Perbedaan antara Argumen dan Paramater


87 | P a g e

http://www.duniailkom.com_________________________________________________________
Pada penjelasan tentang fungsi perkalian() dan luas_lingkaran(), saya menggunakan 2 istilah untuk
nilai inputan fungsi, yakni argumen dan parameter. Tetapi apa perbedaan keduanya?
Argumen merujuk kepada inputan fungsi pada saat fungsi dipanggil, contohnya pada saat saya
memanggil fungsi perkalian (4,5), angka 4 dan 5 disebut argumen.
Sedangkan Parameter merujuk kepada inputan fungsi pada saat pendefenisian. Saya membuat fungsi
perkalian dengan perintah : function perkalian ($angka1, $angka2), variabel $angka1 dan
$angka2 adalah parameter.
Namun pada penggunaan sehari-hari, istilah parameter dan argumen sering dipertukarkan. Termasuk
dalam manual resmi PHP, dimana istilah argumenlah yang sering digunakan. Dalam tutorial di
duniailkom, saya akan menggunakan istilah parameter dan argumen secara bergantian.
Dalam tutorial selanjutnya, kita akan membahas tentang variabel scope, yaitu batasan ruang lingkup
dari sebuah variabel. Selanjutnya dalam Tutorial Belajar PHP: Pengertian Variabel Scope, Global
Variabel, dan Static Variabel dalam PHP.

88 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 41: Pengertian Variabel Scope, Global


Variabel, dan Static Variabel PHP
Pada tutorial kali ini kita akan mempelajari tentang beberapa istilah terkait fungsi dalam PHP,
yaituPengertian Variabel Scope, Global Variabel, dan Static Variabel dalam PHP.

Pengertian Variabel Scope


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

Contoh Variabel Scope dalam Fungsi PHP


Untuk memahami konsep variabel scope, berikut adalah contoh kode program dalam PHP:
<?php
$a = 5;
function coba()
{
$a=10;
$b=7;
}
// pemanggilan fungsi coba()
coba();
echo $a; // 5
echo $b; // error:notice
?>

Pada baris ke-2, saya mendefenisikan variabel $a, dan memberikan nilai awal = 5. Pada baris ke-4 saya
membuat fungsi coba() dan mendefenisikan kembali variabel $a yang kali ini nilainya adalah 10, dan
juga membuat sebuah variabel baru, yakni $b.
Setelah memanggil fungsi coba() pada baris ke-11, saya kemudian memeriksa nilai $a dengan
perintah echo. Dan ternyata nilai $a adalah 5, bukan 10. Dan ketika saya ingin mengakses variabel $b,
PHP akan mengeluarkan peringatan bahwa variabel $b belum di defenisikan, dengan pesan
error: Notice: Undefined variable: b in D:\xampp\htdocs\belajar\test.php on line 13.
Hal ini terjadi karena variabel $a dan $b berada di dalam fungsi coba() yang merupakan variabel yang
berbeda dengan variabel $a yang berada diluar fungsi. Jangkauan variabel $a dan $b hanya berada di
dalam fungsi.
Contoh lainnya, perhatikan kode program berikut ini:
<?php
$b = 7;
function coba()

89 | P a g e

http://www.duniailkom.com_________________________________________________________
{
$a=10;
echo $a;
echo $b;
}
coba();
?>

Pada program kali ini, saya mencoba mengakses variabel $b dari dalam fungsi coba(), namun PHP akan
mengeluarkan pesan peringatan pada baris ke-8: Notice: Undefined variable: b in
D:\xampp\htdocs\belajar\test.php on line 8 yang berarti bahwa PHP tidak menemukan adanya
variabel $b. Variabel $b hanya dapat diakses dalam ruang lingkup di luar fungsi coba().
Konsep pembatasan variabel scope ini terkesan merepotkan, namun sebenarnya sangat berguna
untuk men-isolasi penggunaan variabel agar tidak saling menimpa. Fungsi-fungsi bawaan di dalam
PHP dibuat oleh berbagai programmer dari seluruh dunia, dan mungkin saja kita secara tidak sengaja
menggunakan nama variabel yang sama dengan nama variabel yang ada dalam salah satu fungsi
tersebut. Dengan menerapkan variabel scope, PHP dapat terhindar dari permasalahan tersebut.

Pengertian Global Variabel


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.
Berikut contoh penggunaan keyword global:
<?php
$a = 7;
function coba()
{
global $a;
global $b;
$b=15;
echo $a; //7
echo $b; //15
}
coba();
echo $a; //7
echo $b; //15
?>

Program diatas tidak akan menghasilkan error seperti sebelumnya, dan kita bisa mengakses nilai
variabel $a dari dalam fungsi coba(), dan nilai variabel $b di luar fungsi.
Kata kunci global membuat fungsi dapat mengakses variabel yang didefenisikan diluar fungsi.

Pengertian Static Variabel


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.
90 | P a g e

http://www.duniailkom.com_________________________________________________________
Namun jika sebuah variabel dinyatakan sebagai static variabel, maka nilai variabel tersebut akan tetap
dipertahankan walaupun fungsi telah selesai dijalankan. Biasanya fungsi ini dimanfaatkan jika kita
ingin menghitung berapa kali sebuah fungsi dipanggil.
Berikut adalah contoh program penggunaan variabel statis dalam PHP:
<?php
function coba()
{
static $a=0;
$a=$a+1;
return "Ini adalah pemanggilan ke-$a fungsi coba() <br />";
}
echo
echo
echo
echo
?>

coba();
coba();
coba();
coba();

Jika anda menghapus keyword static pada baris ke-4, maka variabel $a akan selalu bernilai 0, karena
nilainya akan dihapus pada setiap kali pemanggilan fungsi coba(). Namun dengan
membuat$a sebagai static variable, maka nilai dari $a akan terus dipertahankan sepanjang
pemrosesan halaman oleh PHP.
Konsep tentang variabel scope, global variabel dan static variabel ini akan membantu kita dalam
memahami cara kerja fungsi dalam PHP.
Selanjutnya masih tutorial tentang fungsi, kita akan membahas Cara Pengecekan Tipe Data Argumen
untuk Fungsi PHP.

Tutorial Belajar PHP Part 42: Cara Pengecekan Tipe Data Argumen
untuk Fungsi PHP
Dalam pembuatan fungsi PHP, kita dapat memanfaatkan argumen atau parameter sebagai inputan
kedalam fungsi yang dirancang. Dalam tutorial belajar PHP kali ini kita akan membahas tentang Cara
Pengecekan Tipe Data Argumen untuk Fungsi PHP.

Pentingnya Pengecekan Tipe Data Argumen


Dalam pembuatan fungsi PHP, selain merancang cara kerja fungsi, kita juga harus memperkirakan
berapa banyak parameter yang dibutuhkan untuk fungsi tersebut. Sebuah fungsi bisa memiliki 1, 2
atau 5 parameter, namun bisa juga tanpa parameter sama sekali.
Tergantung tujuannya, sebuah fungsi umumnya hanya memperbolehkan tipe data tertentu
sebagaiargumen. Misalnya, untuk fungsi yang berhubungan dengan matematika, biasanya hanya
membutuhkan argumen dengan tipe data angka (integer atau float), dan fungsi penghitung kata,
hanya membutuhkan tipe data string sebagai argumen.
Jika anda adalah satu-satunya pengguna fungsi yang anda rancang sendiri, maka dapat dipastikan
bahwa tidak akan ada inputan argumen yang salah tipe data. Namun jika terdapat kemungkinan fungsi
yang dirancang akan digunakan oleh pihak lain, pengecekan tipe data argumen perlu dirancang agar
fungsi berjalan sebagaimana mestinya.
Jika tipe data parameter tidak sesuai, maka fungsi tidak akan berjalan sebagaimana mestinya, dan
biasanya PHP akan mengeluarkan pesan error. Cara elegan untuk mengatasi permasalahan ini adalah
91 | P a g e

http://www.duniailkom.com_________________________________________________________
membuat kode program untuk memeriksa tipe data parameter ini sebelum masuk kepada
pemrosesan di dalam fungsi.
Pengecekan tipe data dilakukan pada awal pemrosesan fungsi, dan jika tipe data tidak sesuai, kita bisa
membuat pesan bahwa fungsi tidak dapat diproses. Pengecekan apakah suatu argument merupakan
bagian dari tipe data tertentu, dilakukan dengan fungsi khusus yang telah disediakan PHP.
Berikut adalah list fungsi pengecekan tipe data dalam PHP:
is_array($var): fungsi pengecekan apakah tipe data adalah array
is_bool($var): fungsi pengecekan apakah tipe data adalah boolean
is_double($var): fungsi pengecekan apakah tipe data adalah float
is_float($var): fungsi pengecekan apakah tipe data adalah float
is_int($var): fungsi pengecekan apakah tipe data adalah integer
is_integer($var): fungsi pengecekan apakah tipe data adalah integer
is_long($var): fungsi pengecekan apakah tipe data adalah integer
is_null($var): fungsi pengecekan apakah tipe data adalah null
is_numeric($var): fungsi pengecekan apakah tipe data adalah angka (integer dan float)
is_object($var): fungsi pengecekan apakah tipe data adalah objek
is_real($var): fungsi pengecekan apakah tipe data adalah float
is_resource($var): fungsi pengecekan apakah tipe data adalah resource (seperti variabel yang
menampung koneksi ke database)
is_scalar($var): fungsi pengecekan apakah tipe data adalah scalar (scalar adalah penyebutan
untuk tipe data dasar, seperti integer, float, string atau boolean. Array, object dan resource
bukan scalar)
is_string($var): fungsi pengecekan apakah tipe data adalah string
Cara Pengecekan Tipe Data Argumen Fungsi
Fungsi-fungsi diatas dapat dimanfaatkan untuk pengecekan tipe data suatu variabel, dan tentu saja
juga argumen fungsi. Agar lebih mudah dipahami, saya telah merancang fungsi pangkat() yang
berfungsi untuk melakukan pemangkatan bilangan.
Fungsi pangkat() saya rancang dengan 2 buah inputan atau parameter. Parameter pertama adalah
angka yang akan dihitung, dan parameter kedua adalah nilai pangkatnya. pangkat(2,3) berarti 2
pangkat 3. pangkat(2,8) berarti 2 pangkat 8. Kedua parameter ini harus berupa angka, dan khusus
untuk nilai pangkat, harus berupa angka bulat (integer).
Berikut adalah kode program fungsi pangkat():
<?php
function pangkat($nilai, $pangkat)
{
if (is_numeric($nilai) AND is_int($pangkat)) //pengecekan tipe data
argumen
{
//Jika argumen sesuai, maka jalankan proses fungsi
$hasil=1;
for ($i=1;$i<=$pangkat;$i++)
{
$hasil=$hasil*$nilai;
}
return $hasil;
}
else
{
//Bagian ini akan dijalankan jika tipe data argumen bukan angka

92 | P a g e

http://www.duniailkom.com_________________________________________________________
return "Tipe data argumen harus berupa angka";
}
}
//Test beberapa kasus inputan untuk fungsi pangkat()
echo pangkat(5,2);
echo "<br />";
echo pangkat(5.6,2);
echo "<br />";
echo pangkat(2,8);
echo "<br />";
echo pangkat(5,2.9);
echo "<br />";
echo pangkat("lima",2);
echo "<br />";
?>

Fungsi pangkat() diatas terasa sedikit panjang, namun jika anda telah mengikuti seluruh tutorial PHP
di duniailkom, maka fungsi tersebut tidak akan terlalu sulit untuk dipahami.
Fungsi pangkat() saya rancang untuk menghitung pangkat dari sebuah angka. Variabel $nilai dan
$pangkat adalah parameter yang akan menjadi variabel perantara.
Pada baris ke-4 saya membuat pengecekan masing-masing parameter di dalam logika IF. Fungsi
is_numeric() dan is_int() akan menghasilkan nilai TRUE jika keduanya benar, sehingga saya
menggabungkan keduanya kedalam logika AND. Seandainya logika AND ini salah, maka kondisi IF akan
bernilai FALSE, dan bagian ELSE akan dijalankan (baris ke-13), dimana saya membuat kalimat Tipe
data argumen harus berupa angka untuk memberitahu pengguna fungsi bahwa tipe argumennya
harus berupa angka.
Jika kedua kondisi is_numeric() dan is_int() benar, maka saya membuat proses perulangan foruntuk
mencari hasil pemangkatan. Setelah hasilnya ditemukan, perintah return akan mengembalikan nilai
tersebut (baris ke-11).
Dari hasil pemanggilan fungsi, kita dapat melihat bahwa logika alur program sudah berjalan benar,
dan jika saya memberikan nilai argumen yang salah, hasil yang ditampilkan bukan kode error PHP,
melainkan pesan kesalahan yang lebih informatif.
Dengan menggunakan fungsi seperti is_numeric() dan is_int() kita dapat melakukan pengecekan tipe
data terlebih dahulu sebelum melakukan proses fungsi. Hal ini akan menghindari error program PHP,

93 | P a g e

http://www.duniailkom.com_________________________________________________________
dan memberikan fleksibilitas untuk melakukan tindakan pencegahan jika tipe data yang diinput bukan
yang seharusnya.
Dalam tutorial belajar PHP selanjutnya, kita akan membahas tentang Cara Pembuatan Default
Parameter pada Fungsi PHP.

94 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 43: Cara Pembuatan Default Parameter


pada Fungsi PHP
Dalam lanjutan tutorial belajar PHP kali ini kita akan membahas tentang Cara Pembuatan Default
Parameter pada Fungsi PHP.

Pengertian Default Parameter dalam PHP


Default Parameter adalah istilah untuk parameter yang memiliki nilai awal, atau nilai default.
Sebagai contoh, misalkan kita membuat fungsi sederhana: tambah(). Fungsi ini membutuhkan 2 buah
parameter, yakni nilai yang ingin ditambahkan. Berikut adalah contoh programnya:
<?php
function tambah($a,$b)
{
return $a+$b;
}
echo tambah(2,3); // hasil: 5
echo tambah(3,4); // hasil: 7
?>

Dengan menambahkan default parameter, kita bisa memanggil fungsi tambah() hanya dengan 1
inputan angka, atau bahkan tidak perlu sama sekali. Berikut adalah perubahannya:

<?php
function tambah($a,$b=2)
{
return $a+$b;
}
echo tambah(2); // hasil: 4
echo tambah(10); // hasil: 12
echo tambah(4,4); // hasil: 8
?>

Perhatikan di dalam pembuatan fungsi, saya menulis parameter kedua menjadi $b=2. Inilah yang
dimaksud dengan default parameter. Jika parameter $b tidak ditulis pada saat pemanggilan fungsi,
nilai 2 akan dijadikan nilai awal.
Dengan nilai default ini, kita bisa merancang fungsi dengan parameter yang bersifat opsional.
Parameter tersebut bisa diisi pada saat pemanggilan fungsi, namun boleh juga diabaikan. Sehingga
jika fungsi dipanggil tanpa parameter, nilai ini akan menjadi nilai awal untuk fungsi tersebut.
Fitur default parameter bisa dimanfaatkan untuk membuat fungsi yang fleksibel, karena pada saat
pemanggilan fungsi kita tidak harus menginputkan seluruh parameter, tetapi apa yang dianggap perlu
saja.

Cara Penulisan Default Parameter dalam PHP


Untuk membuat default parameter, kita hanya butuh memberikan nilai awal pada saat pendefenisian
parameter. Berikut adalah format dasar penulisan default parameter dalam PHP:

95 | P a g e

http://www.duniailkom.com_________________________________________________________
function nama_fungsi
($parameter1=nilai_default1,$parameter2=nilai_default2)
{
// proses fungsi
return nilai_akhir;
}

nama_fungsi adalah nama dari fungsi yang akan dibuat


$parameter1, $parameter2 adalah variabel yang akan menampung inputan atau argumen
pada saat pemanggilan fungsi.
nilai_default1, nilai_default2 adalah nilai default untuk parameter. Nilai ini akan digunakan
jika pada saat pemanggilan fungsi nilai parameter tidak diisi.
return nilai_akhir adalah instruksi untuk mengembalian hasil pemrosesan fungsi.

Agar lebih mudah memahami konsep default parameter, saya akan mengubah fungsi pangkat()yang
telah kita rancang pada tutorial Cara Pengecekan Tipe Data Argumen untuk Fungsi PHP, berikut adalah
contoh kode programnya:
<?php
function pangkat($nilai, $pangkat=2)
{
$hasil=1;
for ($i=1;$i<=$pangkat;$i++)
{
$hasil=$hasil*$nilai;
}
return $hasil;
}
//Test beberapa kasus inputan untuk fungsi pangkat()
echo "pangkat(5) = ".pangkat(5);
echo "<br />";
echo "pangkat(3) = ".pangkat(3);
echo "<br />";
echo "pangkat(2,8) = ".pangkat(2,8);
echo "<br />";
echo "pangkat(3.5,3) = ".pangkat(3.5,3);
echo "<br />";
?>

96 | P a g e

http://www.duniailkom.com_________________________________________________________
Pada contoh fungsi pangkat() kali ini saya tidak menggunakan fitur pengecekan tipe data agar contoh
program lebih sederhana.
Pada saat mendefenisikan fungsi pangkat(), saya menambahkan nilai 2 sebagai default parameter
untuk parameter $pangkat. Sehingga jika fungsi pangkat() dipanggil tanpa parameter ke-2,
berarti$pangkat akan diisi nilai 2.
Saat pemanggilan fungsi pangkat(5), maka kita hanya menggunakan 1 buah argumen. Untuk argumen
ke 2, akan diisi nilai default, yakni 2. Sehingga fungsi yang akan dijalankan sebenarnya
adalah pangkat(5,2).
Namun saat pemanggilan fungsi pangkat(2,8), maka nilai parameter $pangkat akan menggunakan8,
bukan angka 2, karena pada pemanggilan kali ini, saya membuat 2 buah argumen.

Penempatan Default Parameter


Sebuah fungsi tidak dibatasi berapa banyak default parameter yang boleh digunakan, namun jika anda
ingin membuat default parameter, dan pada fungsi yang sama juga menggunakan parameter biasa,
maka default parameter harus diletakkan di akhir pendefenisian parameter.
Dengan kata lain, setelah pendefinisian parameter dengan nilai default, tidak boleh ada parameter
reguler sesudahnya. Contoh pendefenisian fungsi berikut ini akan menyebabkan error dalam PHP:
function tambah($nilai1, $nilai2=3, $nilai3)
Hal ini terjadi karena default parameter diletakkan sebelum parameter
biasa. Contoh diatas seharusnya di tulis sebagai:
function tambah($nilai1, $nilai2, $nilai3=3)
//atau
function tambah($nilai1, $nilai2=3, $nilai3=3)

Dalam kedua contoh tersebut, dafault parameter di letakkan setelah pendefenisian parameter biasa.
Default parameter merupakan fitur yang bisa dimanfaatkan untuk membuat fungsi kita lebih fleksibel,
karena cara pemanggilan fungsi dapat dirancang dengan lebih sederhana. Untuk merancang fungsi
yang lebih rumit, kita bisa membuat jumlah argumen yang tidak terbatas. Mengenai hal ini kita akan
membahasnya dalam tutorial Pengertian Variable Parameter dalam Fungsi PHP.

97 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar PHP Part 44: Pengertian Variable Parameter


dalam Fungsi PHP
Dalam tutorial belajar PHP kali ini, kita akan membahas tentang pengertian variable parameter, dan
fungsi dari variabel parameter dalam PHP.

Pengertian Variable Parameter


Variable Parameter adalah sebuah fitur dalam PHP dimana kita bisa membuat fungsi dengan
jumlah parameter yang bisa berubah-ubah (variable). Umumnya sebuah fungsi
membutuhkanparameter yang telah ditentukan sebelumnya, namun dengan beberapa fungsi khusus,
PHP membolehkan kita untuk membuat fungsi dengan jumlah parameter tidak dibatasi, bisa 0, 2, 5,
bahkan 100 parameter dengan 1 nama fungsi.

Cara Pembuatan Fungsi dengan Variable Parameter


Sebuah fungsi dengan jumlah parameter yang tidak diketahui tampaknya agak aneh, namun
fleksibilitas ini dapat digunakan untuk kasus-kasus pemograman khusus.
Sebagai contoh, saya akan membuat fungsi penambahan(), dimana fungsi ini akan menambahkan
seluruh angka yang terdapat di dalam argumennya. Misalkan penambahan(2,6,8) akan
menghasilkan 16, dan penambahan(1,2,3,4,5,6) akan menghasilkan nilai 21. Saya menginginkan
fungsi ini mendukung berapapun jumlah argumen. Fungsi akan mengunakan fitur Variable Parameter.
Untuk membuat sebuah fungsi dengan jumlah parameter yang tidak diketahui, PHP menyediakan 3
fungsi tambahan untuk mengakses argumen yang diinput pada saat fungsi dipanggil. Ketiga fungsi
tersebut adalah:
func_get_args(): fungsi ini akan mengembalikan seluruh nilai argumen dalam sebuah fungsi.
Hasilnya dalam bentuk array.
func_num_args(): fungsi ini akan mengembalikan banyaknya jumlah argumen dalam
pemanggilan fungsi, apakah 1 argumen, 3 argumen, atau 10 argumen.
func_get_arg(no_urut_argumen): fungsi ini akan mengembalikan nilai dari argumen pada
nomor urut yang diberikan kepadanya.
Agar mudah memahami fungsi ketiganya, langsung saja kita masuk ke dalam kode program:
<?php
function penambahan()
{
//ambil variable parameter
$array_argumen = func_get_args();
$jumlah_argumen = func_num_args();
$nilai_argumen_ke_2 = func_get_arg(1); //index dimulai dari 0
//tampilkan hasil variable parameter
echo "Jumlah argumen: $jumlah_argumen";
echo "<br />";
echo "Nilai argumen ke-2: $nilai_argumen_ke_2";
echo "<br />";
echo "Array Argumen: ";
var_dump($array_argumen);
echo "<br />";

98 | P a g e

http://www.duniailkom.com_________________________________________________________
echo "<br />";
return;
}
echo "Rincian dari fungsi penambahan(1,2) : ";
echo "<br />";
penambahan(1,2);
echo "Rincian dari fungsi penambahan(5,4,3,2,1) : ";
echo "<br />";
penambahan(5,4,3,2,1);
echo "Rincian dari fungsi penambahan(0,6,8,19) : ";
echo "<br />";
echo penambahan(0,6,8,19);
?>

Mari kita membahas kode PHP diatas:


Pada baris ke-2, saya mendefenisikan fungsi penambahan() tanpa menggunakan parameter. Untuk
membuat fungsi variable parameter (dimana jumlah parameternya yang tidak ditentukan) dalam
pendefenisian fungsi, dibuat tanpa parameter sama sekali.
Pad baris 5-7, saya menjalankan ke-3 fungsi khusus yang telah dijelaskan sebelumnya. Fungsi-fungsi
ini akan mengambil nilai-nilai dari argumen yang diinputkan pada saat pemanggilan fungsi. Lalu nilai
ini saya simpan kedalam 3 variabel, yakni $array_argumen, $jumlah_argumen, dan
$nilai_argumen_ke_2

99 | P a g e

http://www.duniailkom.com_________________________________________________________
Sebagai catatan, untuk mengambil nilai argumen ke-2, saya dapatkan nilainya dari
fungsifunc_get_arg(1). Karena argumen dihitung dari angka 0, sehingga argumen kedua berada di
index ke 1.
Selanjutnya dari baris 11-20 saya menampilkan hasil masing-masing variabel. Penulisan echo
<br/> digunakan semata-mata agar tampilan di browser lebih rapi dan mudah dilihat.
Pada saat pemanggilan fungsi penambahan() pada baris ke 26, 30 dan 34, saya memanggilnya dengan
jumlah argumen yang berbeda-beda, dan anda dapat melihat hasil dari ke-3 fungsi khusus variabel
parameter.
Dengan ke-3 fungsi khusus telah sukses di jalankan, untuk membuat fungsi penambahan() yang
sebenarnya, saya tinggal membuat perulangan (looping) untuk menambahkan seluruh argumenargumen yang ada. Berikut adalah kode program fungsi penambahan versi final:
<?php
function penambahan()
{
//ambil variable parameter
$jumlah_argumen = func_num_args();
//proses penambahan
$nilai=0;
for ($i = 0; $i < $jumlah_argumen; $i++)
{
$nilai += func_get_arg($i);
}
return $nilai;
}
echo "penambahan(1,2) = ".penambahan(1,2);
echo "<br />";
echo "penambahan(5,4,3,2,1) = ".penambahan(5,4,3,2,1);
echo "<br />";
echo "penambahan(0,6,8,19,20,44,21) = ".penambahan(0,6,8,19,20,44,21);
?>

100 | P a g e

http://www.duniailkom.com_________________________________________________________
Fungsi penambahan() diatas akan memproses tiap-tiap argumen yang diberikan kepada fungsi
tersebut. Perulangan for akan memproses perulangan sebanyak argumen yang dimiliki.

Fungsi Bawaan PHP


PHP memiliki ribuan fungsi-fungsi bawaan. Memahami cara kerja dan cara penggunaan fungsi bawaan
PHP ini akan sangat membantu kita untuk membuat kode program yang efektif dan efisien. Pada
bagian ini Duniailkom akan menyediakan pembahasan mengenai fungsi-fungsi bawaan PHP.
Tutorial PHP: Cara Mengubah Huruf Besar ke Kecil dan Sebaliknya (Case Conversion)
Dalam proses pembuatan program PHP, kadang kita butuh untuk mengubah huruf besar ke kecil dan
sebaliknya, atau biasa disebut dengan case conversion. Dalam tutorial belajar PHP kali ini saya akan
membahas 4 fungsi bawaan PHP yang bisa digunakan untuk keperluan ini: strtolower(), strtoupper(),
ucfirst() dan ucwords().

Mengubah Huruf Besar ke Kecil


Untuk mengubah huruf besar ke kecil dalam sebuah string PHP, kita bisa menggunakan fungsi
strtolower(). Fungsi ini membutuhkan 1 buah argumen, yakni string yang akan diubah.
Berikut contoh penggunaan fungsi strtolower():
<?php
$kalimat = "SAYA Sedang Belajar PHP di DUNIAILKOM";
$kalimat_new = strtolower($kalimat);
echo $kalimat_new;
// saya sedang belajar php di duniailkom
?>

Fungsi strtolower() sering digunakan dalam operasi perbandingan string, karena terkadang kita tidak
bisa menentukan apakah variabel asal sudah dalam huruf kecil atau dalam huruf besar. Seperti contoh
berikut:
<?php
$dari_user = "Andi";
$dari_database = "andi";
if ($dari_user == $dari_database) {
echo "Sama";
}
else {
echo "Tidak Sama";
}
// Hasil: Tidak Sama
?>

Kode diatas akan meberikan hasil: Tidak Sama. Jika kita ingin mengabaikan perbedaan huruf ini, bisa
menkonversi terlebih dahulu kedua kata tersebut menggunakan fungsi strtolower():
<?php
$dari_user = "Andi";
$dari_database = "andi";

101 | P a g e

http://www.duniailkom.com_________________________________________________________
if (strtolower($dari_user) == strtolower($dari_database)) {
echo "Sama";
}
else {
echo "Tidak Sama";
}
// Hasil: Sama
?>

Kali ini hasil akhirnya adalah: Sama.


Dalam kebanyakan kasus, sebuah hasil inputan dari user (biasanya berasal dari form), bisa dikonversi
terlebih dahulu ke dalam huruf kecil, kemudian baru di simpan ke dalam database, biasanya ini
diperlukan untuk pemrosesan username:
<?php
$user_name = strtolower($_GET["user_name"]);
// proses variabel user_name disini ?>

Mengubah Huruf Kecil ke Besar


Untuk mengubah huruf besar ke kecil di dalam PHP, bisa menggunakan fungsi strtoupper(). Cara
penggunaannya hampir sama dengan fungsi strtolower().
Berikut adalah contoh penggunaan fungsi strtoupper() di dalam PHP:
<?php
$kalimat = "SAYA Sedang Belajar PHP di DUNIAILKOM";
$kalimat_new = strtoupper($kalimat);
echo $kalimat_new;
// SAYA SEDANG BELAJAR PHP DI DUNIAILKOM
?>

Mengubah Huruf Pertama Awal String


Fungsi ucfirst() berfungsi untuk mengubah huruf pertama awal string menjadi huruf besar. Langsung
saja kita lihat menggunakan contoh kode program:
<?php
$kalimat = "saya sedang belajar PHP di Duniailkom";
$kalimat_new = ucfirst($kalimat);
echo $kalimat_new;
// Saya sedang belajar PHP di Duniailkom
?>

Perhatikan bahwa fungsi ucfirst() tidak peduli dengan karakter lain selain karakter pertama. Dalam
contoh diatas kata PHP menggunakan huruf besar, dan tidak akan terpengaruh oleh fungsi ini.
Selain itu, fungsi ucfirst() juga hanya mengubah karakter pertama string, bukan karakter pertama
setiap kalimat (yang dipisah dengan tanda titik), seperti kasus berikut ini:
<?php
$kalimat = "jangan diganggu! saya lagi serius belajar PHP. di
duniailkom.";

102 | P a g e

http://www.duniailkom.com_________________________________________________________
$kalimat_new = ucfirst($kalimat);
echo $kalimat_new;
// Jangan diganggu! saya lagi serius belajar PHP. di duniailkom.
?>

Secara teknis, string diatas terdiri dari 3 kalimat, namun fungsi ucfirst() hanya melihat karakter
pertama string saja. Jika anda ingin mengubah huruf pertama setiap kalimat, harus membuat fungsi
tersendiri.

Mengubah Huruf Pertama Setiap Kata


Apabila yang diinginkan adalah agar huruf pertama dalam setiap kata menjadi huruf besar, PHP
menyediakan fungsi ucwords(). Berikut contoh penggunaannya:
<?php
$kalimat = "saya sedang belajar php di duniailkom";
$kalimat_new = ucwords($kalimat);
echo $kalimat_new;
// Saya Sedang Belajar Php Di Duniailkom
?>

Seperti yang terlihat, hasil akhirnya setiap huruf pertama setiap kata diubah menjadi huruf besar.
Bagaimana jika string tersebut memiliki kombinasi huruf yang tidak sama? Mari kita coba:
<?php
$kalimat = "SAYA Sedang Belajar PHP di DUNIAILKOM";
$kalimat_new = ucwords($kalimat);
echo $kalimat_new;
// SAYA Sedang Belajar PHP Di DUNIAILKOM
?>

Hasilnya, fungsi ucwords() hanya fokus dengan huruf pertama setiap kata. Untuk huruf kedua dan
seterusnya, fungsi ini tidak akan melakukan perubahan apapun.
Jika anda ingin agar semua karakter seragam dimana huruf pertama setiap kata dalam huruf besar,
dan kata lain dalam huruf kecil, kita bisa menkombinasikan fungsi strtolower() dengan fungsi
ucwords(), seperti berikut ini:
<?php
$kalimat = "SAYA Sedang Belajar PHP di DUNIAILKOM";
$kalimat_kecil = strtolower($kalimat);
$kalimat_new = ucwords($kalimat_kecil);
echo $kalimat_new;
// Saya Sedang Belajar Php Di Duniailkom
?>

Hasilnya, seluruh string akan ditampilkan seragam, tidak peduli bagaimana kombinasi penulisan string
awal.
Dalam tutorial belajar PHP kali ini kita telah membahas tentang case conversion, yakni fungsi untuk
perubahan huruf di dalam PHP. Keempat fungsi ini cukup sederhana, tapi sangat sering digunakan
untuk membuat kode program yang lebih kompleks.
103 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial PHP: Cara Memotong atau Mengambil Sebagian String


(fungsi substr)
Pada tutorial belajar PHP Duniailkom kali ini saya akan membahas sebuah fungsi sederhana yang
cukup sering digunakan, yakni fungsi substr(). Fungsi substr() digunakan untuk memotong sebuah
string atau mengambil sebagian nilai dari sebuah string di dalam PHP.

Mengenal Fungsi substr()


Fungsi substr() adalah fungsi PHP untuk memotong string, atau untuk mengambil sebagian nilai dari
sebuah string. Fitur ini cukup sering digunakan dalam proses pembuatan program PHP, terutama yang
membutuhkan manipulasi string.
Sebagai contoh, misalkan kita memiliki sebuah string berbentuk tanggal: 14-09-2015. Bagaimana
caranya untuk mengambil nilai bulan dari string tersebut, yakni karakter 09 ?
Contoh lain, katakan NIM seorang mahasiswa terdiri dari 8 digit: 12140001. Dua digit pertama
adalah tahun masuk mahasiswa, dua digit berikutnya kode jurusan, dan empat digit terakhir adalah
no urut mahasiswa. Bagaimana cara memisahkan digit-digit ini?
Dalam kasus seperti inilah fungsi substr() diperlukan.
Fungsi substr() membutuhkan 2 buah argumen dan 1 argumen tambahan (opsional). Arguman
pertama adalah string asal yang ingin diambil nilainya. Argumen kedua berupa posisi awal
pemotongan, dan argumen ketiga diisi jumlah karakter yang akan diambil. Argumen kedua dan ketiga
bertipe integer dan bisa positif maupun negatif.
PHP membuat penggunaan fungsi substr() dengan 6 kombinasi cara penulisan. Kita akan
membahasnya satu persatu.

Cara Mengambil Karakter Dari Awal String


Penggunaan pertama fungsi substr() yang akan kita bahas adalah cara mengambil karakter yang
dimulai dari awal string. Berikut contoh penggunaannya:
<?php
$kalimat = "Belajar PHP di Duniailkom";
$sub_kalimat = substr($kalimat,3);
echo $sub_kalimat;
// ajar PHP di Duniailkom
?>

Dalam kode diatas, saya mengambil string $kalimat mulai dari index ke-3. Jika fungsi substr()ditulis
dengan 2 argumen seperti ini, dan argumen kedua bernilai positif, maka fungsi substr() akan
mengembalikan nilai string $kalimat mulai dari huruf ke-4, yakni huruf a hingga akhir string.
Perlu menjadi catatan bahwa index string di dalam PHP dimulai dari angka 0. Sehingga
fungsisubstr($kalimat,3) akan mengembalikan nilai string $kalimat mulai dari huruf ke-4, dan bukan
huruf ke-3.
Agar lebih yakin, anda bisa mencoba kode berikut ini:
<?php
$kalimat = "123456789";
$sub_kalimat = substr($kalimat,3);
echo $sub_kalimat;
// 456789
?>

104 | P a g e

http://www.duniailkom.com_________________________________________________________
Fungsi substr() juga memiliki argumen ketiga yang bersifat opsional (boleh diisi atau dikosongkan).
Jika kita menambahkan argumen ketiga, nilai ini berfungsi sebagai penentu berapa banyak jumlah
karakter yang akan diambil. Berikut contohnya:
<?php
$kalimat = "Belajar PHP di Duniailkom";
$sub_kalimat = substr($kalimat,8,3);
echo $sub_kalimat;
// PHP
?>

Fungsi substr($kalimat,8,3) akan mengambil string $kalimat mulai dari index ke-8 (karakter ke-9) dan
ambil sebanyak 3 karakter.
Kita juga bisa memberikan nilai negatif untuk argumen ke-3 ini, dan fungsinya akan berubah. Berikut
contohnya:
<?php
$kalimat = "Belajar PHP di Duniailkom";
$sub_kalimat = substr($kalimat,8,-3);
echo $sub_kalimat;
// PHP di Duniail
?>

Fungsi substr($kalimat,8,-3) akan mengembalikan string $kalimat mulai dari index ke-8 (karakter ke9) hingga akhir string, kecuali 3 karakter terakhir. 3 karakter terakhir ini adalah kom, sehingga hasil
akhir kode diatas adalah: PHP di Duniail.
Contoh lainnya, apabila kita ingin mengambil string $kalimat mulai dari index ke-10 hingga akhir string,
kecuali 5 karakter terakhir, maka fungsinya adalah: substr($kalimat,10,-5).

Cara Mengambil Karakter Dari Akhir String


Selain dari awal string, kita juga bisa mengambil karakter mulai dari akhir string. Caranya adalah
dengan memberikan nilai negatif pada argumen kedua fungsi substr(). Langsung saja kita lihat contoh
penggunaannya:
<?php
$kalimat = "Belajar PHP di Duniailkom";
$sub_kalimat = substr($kalimat,-10);
echo $sub_kalimat;
// Duniailkom
?>

Fungsi substr($kalimat,-10) berarti ambil 10 karakter terakhir dari string $kalimat.


Agar lebih spesifik, kita juga bisa menentukan jumlah karakter yang ingin diambil. Ini bisa didapat
dengan menambahkan argumen ke-3:
<?php
$kalimat = "Belajar PHP di Duniailkom";
$sub_kalimat = substr($kalimat,-10,5);
echo $sub_kalimat;
// Dunia
?>

Kombinasi terakhir dari fungsi substr() adalah menggunakan angka minus untuk argumen ketiga,
seperti contoh berikut:
<?php
$kalimat = "Belajar PHP di Duniailkom";
$sub_kalimat = substr($kalimat,-10,-3);
echo $sub_kalimat;
// Duniail

105 | P a g e

http://www.duniailkom.com_________________________________________________________
?>

Fungsi substr($kalimat,-10,-3) berarti ambil 10 karakter terakhir dari string $kalimat, kecuali 3
karakter terakhir, sehingga hasil kode programnya adalah: Duniail.
Dari beberapa contoh diatas, kita sudah melihat 6 jenis kombinasi penggunaan fungsi substr().
Kombinasi tersebut di dapat dari perbedaan jumlah argumen dan apakah argumen tersebut bertipe
positif dan negatif. Sebagai kesimpulan, berikut contoh kode seluruh kombinasi fungsi substr():
<?php
$kalimat = "Belajar PHP di Duniailkom";
echo substr($kalimat,8); // PHP di Duniailkom
echo "<br>";
echo substr($kalimat,8,6); // PHP di
echo "<br>";
echo substr($kalimat,8,-5); // PHP di Dunia
echo "<br>";
echo substr($kalimat,-10); // Duniailkom
echo "<br>";
echo substr($kalimat,-10,5); // Dunia
echo "<br>";
echo substr($kalimat,-10,-3); // Duniail
?>

Pengambilan sebagian nilai string cukup sering kita gunakan. PHP menyediakan fungsi substr()untuk
keperluan ini. Dengan 6 kombinasi, fungsi substr() sangat praktis untuk memotong sebuah string atau
mengambil sebagian nilai dari sebuah string di dalam PHP.
Tutorial PHP: Cara Menghapus Spasi di Awal dan Akhir String (Fungsi trim)
Dalam tutorial belajar PHP kali ini kita akan membahas fungsi trim() yang digunakan untukmenghapus
spasi (whitespace) di awal dan akhir sebuah string PHP. Fungsi trim() juga memiliki 2 varian lain
yakni ltrim() dan rtrim().

Pengertian Fungsi trim()


Secara default bawaan PHP, fungsi trim() digunakan untuk menghapus spasi atau karakter whitespace
dari sebuah string. Karakter spasi yang akan dihapus bisa berada di awal maupun di akhir string.
Dalam prakteknya, fungsi trim() sering digunakan untuk membersihkan hasil input form dari karakter
spasi yang sengaja atau tidak sengaja ditambahkan pengguna.
Berikut adalah contoh penggunaan dasar fungsi trim() di dalam PHP:
<?php
$nama = " andi
";
$trim_nama = trim($nama);
echo $trim_nama; // "andi"
?>

Karena di HTML whitespace atau spasi tidak akan ditampilkan, penerapan kode diatas tidak terlalu
jelas efeknya. Fungsi trim() akan lebih terlihat jika digunakan dalam operasi perbandingan, seperti
contoh berikut:
<?php
$nama = "andi ";
$nama_juga = "andi";
if ($nama == $nama_juga) {
echo "Nama Sama";
}
else {
echo "Nama Beda";
}
// hasil: Nama Beda

106 | P a g e

http://www.duniailkom.com_________________________________________________________
?>

Dalam operasi perbandingan diatas, tambahan sebuah spasi diakhir variabel $nama, yakni andi
akan membuat operasi perbandingan menghasilkan nilai FALSE, sehingga hasil akhirnya adalah Tidak
Sama.
Dengan menambahkan fungsi trim(), kode program diatas akan menghasilkan nilai TRUE, karena spasi
yang ada baik diawal dan diakhir string akan dihapus terlebih dahulu:
<?php
$nama = "andi ";
$nama_juga = "andi";
if (trim($nama) == trim($nama_juga)) {
echo "Nama Sama";
}
else {
echo "Nama Beda";
}
// hasil: Nama Sama
?>

Selain menghapus karakter spasi, fungsi trim() juga akan menghapus 5 karakter whitespace lainnya,
seperti tab, new line, carriage return (karakter enter), null-byte, dan vertical tab. Dalam kode
karakter ASCII, ke-6 karakter ini adalah sebagai berikut:
(ASCII 32 (0x20)), : karakter spasi.
\t (ASCII 9 (0x09)), : karakter tab.
\n (ASCII 10 (0x0A)), : karakter new line (line feed).
\r (ASCII 13 (0x0D)), : karakter carriage return.
\0 (ASCII 0 (0x00)), : karakter NULL-byte.
\x0B (ASCII 11 (0x0B)), : karakter vertical tab.
Berikut contoh penggunaannya:
<?php
$nama = "\t \t andi \n \r";
$nama_juga = "
andi \t";
if (trim($nama) == trim($nama_juga)) {
echo "Nama Sama";
}
else {
echo "Nama Beda";
}
// hasil: Nama Sama
?>

Untuk menulis karakter tab, tidak tersedia tombol khusus di dalam keyboard, oleh karena itu kita
menggunakan escape karakter untuk tab, yakni \t.
Fungsi trim() ini sering digunakan untuk menfilter hasil imputan form. Berikut adalah contoh
penggunaannya:
<?php
$nama = trim($_GET["nama"]);
// proses variabel nama disini
?>

Menambahkan Karakter yang akan Dihapus (character_mask)


Fungsi trim() juga memiliki argumen kedua yang bersifat opsional. Argumen kedua ini bertipe string
yang jika ditulis akan ditambahkan kedalam daftar karakter yang ikut dihapus, atau istilah teknisnya
disebuh dengan character_mask. Langsung saja kita lihat contoh penggunaannya:
107 | P a g e

http://www.duniailkom.com_________________________________________________________
<?php
$nama = "__andi__";
$trim_nama = trim($nama);
echo $trim_nama; // "__andi__"
echo "<br>";
$trim_nama = trim($nama,"_");
echo $trim_nama; // "andi"
?>

Dengan membuat fungsi trim($nama,_) maka karakter underscore _ juga akan ikut dihapus.
Lebih jauh lagi, character_mask ini mendukung penulisan range atau jangkauan karakter, yang ditulis
dengan awal..akhir.
Sebagai contoh, jika saya memiliki beberapa string yang dimulai dengan angka seperti: 1 kelereng,
2 buah, 3 orang, saya bisa menggunakan fungsi trim() untuk menghapus seluruh angka awalan ini.
Berikut contohnya:
<?php
$kata = "1 kelereng";
$trim_kata = trim($kata,"0..9");
echo $trim_kata; // "kelereng"
echo "<br>";
$kata = "2 buah";
$trim_kata = trim($kata,"0..9");
echo $trim_kata; // "buah"
echo "<br>";
$kata = "3 orang";
$trim_kata = trim($kata,"0..9");
echo $trim_kata; // "orang"
?>

Fungsi trim($kata,0..9) berarti: hapus whitespace yang ada di awal dan akhir string $kata, dan
hapus karakter 0, 1, 2, 3 s/d 9 di awal dan diakhir string. Fitur untuk menghapus karakter tertentu ini
cukup berguna ketika kita ingin membersihakan sebuah string dari karakter yang tidak diinginkan.
Pengertian Fungsi rtrim() dan ltrim()
Fungsi rtrim() dan ltrim() adalah bentuk lain dari fungsi trim(), tapi hanya akan menghapus karakter
whitespace yang ada disisi kanan (untuk rtrim) dan di sisi kiri string (untuk ltrim). Kedua fungsi ini juga
bisa ditambahkan argumen ketiga seperti halnya fungsi trim().
Berikut contoh penggunaan fungsi rtrim() dan ltrim() dalam PHP:
<?php
$nama = " andi ";
$rtrim_nama = rtrim($nama);
echo $rtrim_nama; // " andi"
echo "<br>";
$ltrim_nama = ltrim($nama);
echo $ltrim_nama; // "andi "
echo "<br>";
$nama = "___andi___";
$rtrim_nama = rtrim($nama,"_");
echo $rtrim_nama; // "___andi"
echo "<br>";
$ltrim_nama = ltrim($nama,"_");

108 | P a g e

http://www.duniailkom.com_________________________________________________________
echo $ltrim_nama; // "andi___"
?>

Dapat terlihat bahwa fungsi rtrim() dan fungsi ltrim() hanya akan menghapus karakter pada satu sisi
saja.
Fungsi trim(), rtrim() dan ltrim() yang kita pelajari disini cocok digunakan untuk operasi pembersihan
string, ini umumnya digunakan untuk menfilter hasil inputan form dari pengguna (user).
Tutorial PHP: Cara Konversi String Menjadi Array PHP (Fungsi explode)
Fungsi explode() adalah fungsi PHP yang digunakan untuk memecah sebuah string menjadi array, atau
dengan kata lain mengkonversi string menjadi array. Dalam tutorial belajar PHP kali ini kita akan
membahas cara penggunaan fungsi explode().

Pengertian Fungsi explode


Fungsi explode() dalam PHP digunakan untuk menkonversi string menjadi array. Dalam memecah
sebuah string menjadi array, fungsi explode() membutuhkan beberapa argumen. Berikut adalah
format dasar dari fungsi explode dalam PHP:
array explode (string $delimiter , string $string [, int $limit ] )
Penjelasan dari format diatas adalah:
Nilai kembalian fungsi explode berupa sebuah array.
Argumen pertama ($delimiter) diisi dengan string karakter yang digunakan sebagai pemecah
string menjadi array.
Argumen kedua ($string) diisi dengan string yang akan dikonversikan.
Argumen ketiga yang bersifat opsional ($limit) diisi dengan batasan jumlah array yang ingin
dihasilkan. Argumen ketiga ini bertipe angka (integer) dan bisa berupa nilai positif atau
negatif.
Sebagai contoh, dalam kode program berikut ini saya memecah string $kalimat = satu dua tiga empat
lima menjadi array:
<?php
$kalimat = "satu dua tiga empat lima";
$arr_kalimat = explode (" ",$kalimat);
var_dump ($arr_kalimat);
//
//
//
//
//
?>

array(5) {
[0]=> string(4) "satu" [1]=> string(3) "dua"
[2]=> string(4) "tiga" [3]=> string(5) "empat"
[4]=> string(4) "lima"
}

Dalam string $kalimat diatas, saya menggunakan spasi sebagai pemisah kata sehingga untuk
memecah string tersebut, spasi ini akan menjadi pembatas (delimeter) untuk fungsi explode.
Jika string awal dipisahkan dengan karakter koma, titik, atau yang lain, kita bisa menggunakannya
sebagai karakter delimeter, seperti contoh berikut:
<?php
$kalimat = "satu, dua, tiga, empat, lima";
$arr_kalimat = explode (", ",$kalimat);
var_dump ($arr_kalimat);
//
//
//
//
//

array(5) {
[0]=> string(4) "satu" [1]=> string(3) "dua"
[2]=> string(4) "tiga" [3]=> string(5) "empat"
[4]=> string(4) "lima"
}

109 | P a g e

http://www.duniailkom.com_________________________________________________________
?>

Kali ini string $kalimat dipisah dengan tanda spasi dan koma, sehingga saya tinggal menulis
fungsiexplode (, ,$kalimat).
Argumen ketiga fungsi explode() bersifat opsional. Argumen ini bisa diisi dengan angka (integer)
positif maupun negatif. Jika diisi dengan angka positif, maka angka disini menunjukkan jumlah batasan
element array yang akan dihasilkan. Langsung saja kita praktek menggunakan contoh:
<?php
$kalimat = "satu, dua, tiga, empat, lima";
$arr_kalimat = explode (", ",$kalimat, 3);
var_dump ($arr_kalimat);
//
//
//
//
//
?>

array(3) {
[0]=> string(4) "satu"
[1]=> string(3) "dua"
[2]=> string(17) "tiga, empat, lima"
}

Dapat anda perhatikan bahwa walaupun string $kalimat seharusnya bisa dipecah menjadi 5 element
array, tapi hasil dari fungsi explode (, ,$kalimat, 3) hanya menghasilkan 3 element array, sesuai
dengan angka 3 dari argumen ketiga. Untuk element ke-3 array, PHP akan mengambil seluruh string
hingga akhir.
Namun jika kita menginput nilai negatif, hasilnya akan berbeda:
<?php
$kalimat = "satu, dua, tiga, empat, lima";
$arr_kalimat = explode (", ",$kalimat, -3);
var_dump ($arr_kalimat);
//
//
//
//
?>

array(2) {
[0]=> string(4) "satu"
[1]=> string(3) "dua"
}

Kali ini hanya 2 element array yang dihasilkan. Ini terjadi karena angka 3 berarti: kurangi total
element array sebanyak 3. Apabila saya menggunakan fungsi explode biasa, akan terdapat 5 element
array yang bisa dihasilkan (seperti contoh pertama dalam tutorial ini), namun karena saya
menambahkan nilai -3 pada argumen ke 3, hasil akhirnya akan dikurangi sebanyak 3 element (5 3 =
2 element).
Dalam tutorial belajar PHP di duniailkom kali ini, kita telah membahas pengertian dan cara pemakaian
fungsi explode(). Fungsi explode sendiri digunakan untuk mengkonversi sebuah string menjadi array
dalam PHP.

Tutorial PHP: Cara Memformat Tampilan Angka dalam PHP


(Fungsi number_format)
PHP menyediakan beberapa fungsi bawaan untuk memformat tampilan angka. Dalam tutorial belajar
PHP kali ini kita akan membahas salah satunya, yakni fungsi number_format(). Fungsi ini juga bisa
digunakan untuk menformat angka agar sesuai dengan penulisan mata uang rupiah.

Pengertian Fungsi number_format

110 | P a g e

http://www.duniailkom.com_________________________________________________________
Fungsi number_format() adalah fungsi bawaan PHP yang bisa digunakan untuk memformat tampilan
angka, baik itu angka integer maupun float. Dengan memformat tampilan angka, akan membuatnya
lebih cantik dan mudah dibaca. Selain itu fungsi ini juga akan membulatkan atau menambahkan
angka 0 dibelakang koma jika dibutuhkan.
Fungsi number_format() memiliki 2 buah cara penulisan, yakni dengan 2 argumen atau 4 argumen.
Untuk fungsi dengan 2 argumen, berikut adalah format dasar penulisannya:
string number_format ( float $number [, int $decimals = 0 ] )

Hasil akhir fungsi ini bertipe string.


Argumen pertama ($number) membutuhkan input nilai angka yang akan diformat. Argumen
ini bertipe float, tapi bisa juga bisa diisi dengan nilai integer.
Argumen kedua ($decimals) bersifat opsional. Argumen ini menentukan berapa jumlah angka
desimal (angka di belakang koma) yang dibutuhkan. Apabila tidak diisi, dianggap sebagai 0.
Langsung saja kita lihat contoh penggunaan fungsi number_format() ini:
<?php
$angka = 1999.12345;
$angka_format = number_format($angka);
echo $angka_format;
// 1,999
?>

Dapat terlihat, fungsi number_format() akan membuang seluruh bagian desimal dari angka diatas.
Ini terjadi karena secara default, fungsi ini menggunakan 0 sebagai jumlah digit desimal (angka di
belakang koma).
Sebenarnya fungsi number_format() tidak benar-benar membuang nilai desimal, tetapi
membulatkannya, seperti contoh berikut:
<?php
$angka = 1999.99;
$angka_format = number_format($angka);
echo $angka_format;
// 2,000
?>

Dapat terlihat bahwa nilai 1999.99 akan dibulatkan menjadi 2,000.


Dengan menambahkan argumen kedua, kita bisa menentukan berapa digit desimal yang diperlukan:
<?php
$angka = 1999.888;
$angka_format = number_format($angka,2);
echo $angka_format;
// 1,999.89
?>

Kali ini fungsi number_format() akan membatasi 2 digit desimal. Selain itu dapat anda lihat bahwa
fungsi ini juga membulatkan nilai desimalnya.
Bagaimana jika angka awal tidak tidak memiliki angka desimal? Mari kita lihat:
<?php
$angka = 1999;
$angka_format = number_format($angka,3);
echo $angka_format;
// 1,999.000
?>

Hasilnya, string akhir akan ditambahkan angka 0 pada bagian desimalnya. Dengan demikian kita bisa
membuat format angka dengan panjang seragam.
Perhatikan juga bahwa PHP tetap menggunakan tanda koma , sebagai pemisah nilai ribuan, dan
titik . sebagai pemisah nilai desimal. Ini adalah aturan penulisan di Amerika. Nantinya, dengan
111 | P a g e

http://www.duniailkom.com_________________________________________________________
fungsi number_format() kita juga bisa mengubah format ini agar sesuai dengan aturan penulisan
angka di Indonesia, dimana tanda titik digunakan sebagai pemisah ribuan, dan tanda koma sebagai
pemisah nilai desimal.
Bentuk penulisan lain dari fungsi number_format() membutuhkan 4 argumen. Berikut format dasar
penulisannya:
string number_format ( float $number , int $decimals = 0 ,
string $dec_point = "." , string $thousands_sep = "," )

Format penulisan diatas terlihat rumit, namun sebenarnya cukup sederhana. Argumen ketiga dan
keempat fungsi number_format() digunakan untuk menentukan karakter apa sebagai pemisah nilai
ribuan dan nilai desimal.
Sebagai contoh, karena di Indonesia kita menggunakan karakter titik sebagai pemisah angka ribuan
dan karakter koma sebagai pemisah desimal, saya bisa memformat angka tersebut dengan fungsi
number_format(), seperti contoh berikut:
<?php
$angka = 1999.12345;
$angka_format = number_format($angka,2,",",".");
echo $angka_format;
// 1.999,12
?>

Dapat terlihat sekarang, angka akan ditampilkan dalam format umum yang kita gunakan sehari-hari.
Lebih jauh lagi, kita bisa menambahkan string Rp. sebagai awalan agar hasilnya pas untuk nilai mata
uang rupiah. Berikut contohnya:
<?php
$angka = 3050145.756;
$angka_format = number_format($angka,2,",",".");
echo "Rp. ".$angka_format;
// Rp. 3.050.145,76
?>

Dalam kode diatas saya menyambungkan awal Rp. dengan string hasil fungsi number_format().
Tampilan tersebut cocok digunakan untuk hasil akhir angka mata uang untuk membuat laporan yang
banyak melibatkan nilai uang.
Dalam tutorial PHP kali ini kita telah membahas salah satu fungsi praktis untuk memformat angka.
Fungsi number_format() akan sering anda gunakan untuk mempercantik hasil akhir program yang
melibatkan angka.

Tutorial PHP: Cara Mencari Posisi String PHP (Fungsi strpos)


Dalam pemrosesan string, kadang kita butuh untuk mencari posisi sebuah karakter di dalam string.
Untuk keperluan ini PHP memiliki fungsi bawaan, yakni strpos(). Kali ini saya akan
membahaspengertian fungsi strpos() dan cara penggunaan fungsi strpos() di dalam PHP. Selain itu kita
juga membahas fungsi stripos().

Pengertian Fungsi strpos()


Fungsi strpos() adalah fungsi bawaan PHP yang bisa digunakan untuk mencari posisi sebuah karakter
atau sebuah string di dalam string lainnya. Hasil akhir fungsi ini adalah angka yang menunjukkan posisi
karakter/string yang ingin dicari.
Berikut format dasar penulisan fungsi strpos() di dalam PHP:
mixed strpos (string $haystack , mixed $needle [, int $offset = 0 ] )

112 | P a g e

http://www.duniailkom.com_________________________________________________________

Hasil akhir fungsi strpos adalah mixed, karena bisa berupa angka (posisi ditemukannya
karakter yang ingin dicari), maupun FALSE jika fungsi ini tidak menemukan nilai apa-apa.
Argumen pertama ($haystack) berupa string asal dimana pencarian akan dilakukan. String ini
bisa terdiri dari sebuah kalimat pendek hingga dokumen string panjang yang terdiri dari ribuan
huruf.
Argumen kedua ($needle) diisi dengan karakter yang akan dicari. Karakter disini bisa berupa
sebuah huruf/angka atau string lain seperti kalimat.
Argumen ketiga ($offset) bersifat opsional, digunakan untuk melompati hasil pencarian dari
posisi tertentu. Ini digunakan untuk mengabaikan beberapa kalimat awal pencarian.
Agar lebih mudah dipahami, langsung saja kita membahas contoh penggunaannya:
<?php
$kalimat="Sedang serius belajar PHP di duniailkom";
$posisi=strpos($kalimat,"e");
echo $posisi;
// 1
?>

Hasil angka 1 dari kode program diatas menunjukkan karakter e pertama dalam string $kalimat. Perlu
diingat bahwa di dalam PHP penomoran index string dimulai dari angka 0. Sehingga posisi 1 diatas
sebenarnya berada pada karakter ke-2.
Selain menggunakan 1 karakter, kita juga bisa mencari sebuah kata atau string lain, seperti contoh
berikut:
<?php
$kalimat="Sedang serius belajar PHP di duniailkom";
$cari="serius";
$posisi=strpos($kalimat,$cari);
echo $posisi;
// 7
?>

Dalam kode program diatas, saya menempatkan string serius di dalam sebuah variabel, dan mencari
posisinya dengan fungsi strpos(). Hasilnya, kata serius di temukan dan berada pada index ke-7.
Bagaimana jika di dalam string tidak ditemukan apa-apa? Mari kita coba:
<?php
$kalimat="Sedang serius belajar PHP di duniailkom";
$posisi=strpos($kalimat,"CSS",9);
var_dump($posisi);
// bool(false)
?>

Hasilnya: FALSE. Saya sengaja menggunakan fungsi var_dump() karena jika menggunakan echo, tidak
akan terdapat tampilan apa-apa. Ini terjadi karena perintah echo mengkonversi
booleanFALSE menjadi string kosong dan menampilkannya.
Hasil FALSE ini bisa kita manfaatkan untuk membuat sebuah kondisi pemeriksaan apakah karakter
yang ingin dicari ada di dalam string, seperti contoh berikut:
<?php
$kalimat="Sedang serius belajar PHP di duniailkom";
$posisi=strpos($kalimat,"CSS");
if ($posisi){
echo "Ketemu";
}
else {
echo "Tidak ketemu";
}
// Tidak ketemu

113 | P a g e

http://www.duniailkom.com_________________________________________________________
?>

Dengan membuat kondisi seperti itu, kita bisa membuat kode program untuk menentukan ada
tidaknya sebuah karakter. Akan tetapi, efek konversi tipe data otomatis dari PHP bisa menimbulkan
masalah tersendiri. Perhatikan kode berikut ini:
<?php
$kalimat="Sedang serius belajar PHP di duniailkom";
$posisi=strpos($kalimat,"Sedang");
if ($posisi){
echo "Ketemu";
}
else {
echo "Tidak ketemu";
}
// Tidak ketemu
?>

Hasilnya adalah: Tidak ketemu ! Padahal seperti yang kita lihat di dalam string asal, kata Sedang
ada di posisi pertama string. Apa yang terjadi?
Ini karena efek type juggling dimana PHP akan menkonversi sebuah tipe data ke tipe data lain secara
otomatis. Hasil dari fungsi strpos($kalimat,Sedang) adalah 0, karena kata Sedang ditemukan di
awal string, dan indexnya adalah 0. Namun sewaktu kita menggunakan hasil ini dalam kondisi IF, nilai
0 akan dikonversi menjadi FALSE, sehingga hasilnya adalah: Tidak ketemu.
Agar kode program kita bebas dari masalah ini, bisa mengubah kondisi pemeriksaan IF menjadi seperti
berikut ini:
<?php
$kalimat="Sedang serius belajar PHP di duniailkom";
$posisi=strpos($kalimat,"css");
if ($posisi !== FALSE){
echo "Ketemu";
}
else {
echo "Tidak ketemu";
}
// Ketemu
?>

Kali ini saya memaksa PHP untuk memeriksa apakah nilai variabel $posisi harus bertipe booleanFALSE.
Kesalahan program seperti ini sering terjadi dan sangat susah untuk ditemukan, karena PHP tidak akan
menampilkan pesan error apapun.
Kembali ke fungsi strpos(), kali ini saya akan mencoba menambahkan argumen ke-3:
<?php
$kalimat="Sedang serius belajar PHP di duniailkom";
$posisi=strpos($kalimat,"e",9);
echo $posisi;
// 15
?>

Argumen ketiga dari fungsi strpos() berfungsi untuk melompati beberapa karakter awal. Dalam
contoh diatas, karakter e yang ingin dicari sebenarnya sudah ditemukan pada index ke-1 dan ke-8.
Namun karena saya menambahkan argumen ke-3 dengan nilai 9, maka proses pencarian baru
dilakukan mulai dari index ke-9.

Pengertian Fungsi stripos()

114 | P a g e

http://www.duniailkom.com_________________________________________________________
Fungsi strpos() yang kita bahas disini bersifat case sensitif, yang berarti akan membedakan antara
huruf besar dan huruf kecil. Sebagai contoh, kode program berikut akan menghasilkan nilai FALSE:
<?php
$kalimat="Sedang serius belajar PHP di duniailkom";
$posisi=strpos($kalimat,"php",9);
var_dump($posisi);
// bool(false)
?>

Ini terjadi karena fungsi strpos() akan membedakan antara php dengan PHP. Kedua kata ini akan
dianggap berbeda, sehingga karakter php tidak ditemukan.
Jika kita ingin untuk mengabaikan perbedaan ini, bisa menggunakan fungsi stripos(). Penambahan
huruf i disini menunjukkan bahwa fungsi stripos() bersifat case-insensitive. Yang berarti akan
mengabaikan perbedaan huruf besar dan kecil. Fungsi stripos()juga mendukung argumen yang sama
seperti fungsi strpos().
Berikut adalah hasil kode program diatas jika menggunakan fungsi stripos():
<?php
$kalimat="Sedang serius belajar PHP di duniailkom";
$posisi=stripos($kalimat,"php",9);
echo $posisi;
// 22
?>

Kali ini karakter php ditemukan pada posisi index ke-22, dimana kata PHP berada.
Fungsi strpos() dan stripos() yang kita bahas disini sebenarnya cukup sederhana. Dalam prakteknya,
fungsi ini biasa digabung dengan fungsi string lain, misalkan dengan fungsisubstr_replace() untuk
membuat program pencari kata atau menambahkan fitur find and replace.
Tutorial PHP: Cara Menggabungkan (Konversi) Array Menjadi String (Fungsi implode)
Jika PHP memiliki fungsi explode() untuk menkonversi string menjadi array, maka
fungsi implode()adalah kebalikannya, yakni menggabungkan atau menkonversi array menjadi sebuah
string. Dalam tutorial PHP kali ini kita akan membahas pengertian dan cara penggunaan fungsi implode
di PHP.

Pengertian Fungsi implode PHP


Fungsi implode() adalah fungsi bawaan PHP untuk menggabungkan array menjadi string. Berikut
format dasar penulisan fungsi implode:
string implode ( string $glue , array $pieces )
Hasil akhir fungsi implode berupa string.
Argumen pertama diisi dengan string ($glue) yang berfungsi sebagai karakter penyatu array.
Argumen kedua diisi dengan array ($pieces), yakni array yang akan digabungkan.
Berikut contoh penggunaannya:
<?php
$arr_kata = ["satu", "dua", "tiga", "empat", "lima"];
$kalimat = implode(" ",$arr_kata);
echo $kalimat;
// satu dua tiga empat lima
?>

Pada kode diatas, variabel $arr_kata berisi array dengan 5 element, kemudian saya
menggabungkannya menjadi string menggunakan fungsi implode( ,$arr_kata). Hasilnya, setiap
element array akan digabung dengan spasi.
Kita juga bisa menggunakan karakter lain untuk penggabungan ini, seperti contoh berikut:
115 | P a g e

http://www.duniailkom.com_________________________________________________________
<?php
$arr_kata = ["satu", "dua", "tiga", "empat", "lima"];
$kalimat = implode(", ",$arr_kata);
echo $kalimat;
// satu, dua, tiga, empat, lima
?>
<br>
<?php
$arr_kata = ["satu", "dua", "tiga", "empat", "lima"];
$kalimat = implode(" | ",$arr_kata);
echo $kalimat;
// satu | dua | tiga | empat | lima
?>

Dalam dua contoh diatas, saya menggunakan karakter , dan | sebagai pemisah string. Perhatikan
juga bahwa fungsi implode() tidak menambahkan karater tersebut di awal dan akhir string, tapi hanya
diantara element array.
Karena alasan historis, PHP juga membolehkan penulisan fungsi implode() hanya dengan 1 argumen,
yakni array yang akan digabung:
<?php
$arr_kata = ["satu", "dua", "tiga", "empat", "lima"];
$kalimat = implode($arr_kata);
echo $kalimat;
// satuduatigaempatlima
?>

Fungsi implode() diatas sebenarnya sama dengan fungsi implode(, $arr_kata), dimana kita
menggunakan string kosong untuk menggabungkan array. Hasil akhirnya, seluruh string digabung
tanpa ada pemisah (menjadi 1 string panjang). Namun agar konsisten dengan fungsi explode(),
sebaiknya kita tetap menggunakan 2 argumen untuk fungsi implode() ini.
Dalam tutorial belajar PHP ini kita telah membahas cara mengkonversi array menjadi string. Fungsi ini
biasanya digunakan secara berpasangan dengan fungsi explode.

116 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial PHP MySQL


Tutorial PHP MySQL ditujukan untuk membuat koneksi antara database MySQL Server dengan bahasa
pemrograman web PHP. Di dalam sesi ini kita akan membahas secara detail cara menghubungkan PHP
dengan MySQL. Secara garis besar, terdapat 3 metoda koneksi yang akan dibahas, yakni
menggunakan mysql extension, mysqli extension, dan dengan PDO.
PHP dan MySQL merupakan kombinasi bahasa pemrograman dan database paling poluler, sehingga
cara penggabungan keduanya merupakan hal yang wajib dikuasai.

Tutorial Belajar PHP Lanjutan: Cara Membuat Koneksi PHP ke Database MySQL
PHP dan MySQL adalah kombinasi bahasa pemograman dan database yang sangat populer. Situs
duniailkom yang berbasis wordpress juga menggunakan kombinasi PHP dan MySQL.
Dalam bagian tutorial belajar PHP lanjutan ini, saya akan membuat tutorial mengenai cara membuat
koneksi antara PHP dengan database MySQL.
Untuk dapat mengikuti tutorial ini, saya sarankan anda telah mengetahui dasar penulisan PHP,
seperti perulangan, tipe data, dan pemanggilan fungsi, karena kita akan banyak menggunakannya
dalam tutorial kali ini. Pengetahuan tentang query MySQL juga akan sangat membantu.
Jika anda belum paham keduanya, atau untuk sekedar me-refresh tentang PHP dan MySQL,
duniailkom telah membuat tutorial lengkap tentang keduanya. Untuk Tutorial PHP Dasar, dapat anda
baca di Tutorial Belajar PHP Dasar Untuk Pemula dan untuk Tutorial MySQL Dasar, dapat anda baca
di Tutorial Belajar MySQL Dasar Untuk Pemula.
Dalam halaman ini, saya akan mengindex seluruh Tutorial Cara Membuat Koneksi PHP ke Database
MySQL. Semoga dengan tutorial ini anda bisa mengetahui dan paham cara menggabungkan PHP
dengan MySQL.

Tutorial PHP MySQL Part 2: Jenis Koneksi PHP - MySQL: PDO,


mysqli, dan mysql extension
Untuk dapat menggunakan dan mengakses database MySQL, PHP menyediakan 3 cara koneksi:
menggunakan PDO (PHP Data Objects), mysqli extension dan mysql extension. Dalam tutorial belajar
PHP kali ini kita akan membahas keunggulan masing-masing, dan perbedaan ketiganya.

Perkembangan Cara Koneksi PHP dan MySQL


PHP merupakan bahasa pemograman yang selalu di update dan berkembang mengikuti teknologi
terbaru. Saat ini, Pemrograman Berorientasi Objek (Object Oriented Programming) merupakan trend
pemrograman PHP, dan hal ini juga mempengaruhi cara mengakses database MySQL dari PHP.
PHP memiliki 3 cara pengaksesan MySQL, yakni melalui PDO (PHP Data Objects), mysqli
extension dan mysql extension. PDO menggunakan pemrograman objek, mysqli extension tersedia
dalam bentuk objek dan prosedural (diakses melalui fungsi-fungsi) sedangkan mysql
extension sepenuhnya menggunakan pemograman prosedural.
Mari kita bahas pengertian dan perbedaan ketiga metode ini:
1. Koneksi MySQL dengan mysql extension

117 | P a g e

http://www.duniailkom.com_________________________________________________________
Saat pertama kali mempelajari PHP MySQL sekitar tahun 2008 (atau jika anda pernah mempelajari
PHP-MySQL beberapa tahun yang lalu), untuk mengakses MySQL dari PHP, kita menggunakan fungsifungsi seperti mysql_connect(), mysql_query(), dan mysql_fetch_array(). Fungsi-fungsi ini tergabung
ke dalam mysql extension (saat itu PDO dan mysqli extension masih jarang digunakan)
Namun sekarang (tepatnya mulai PHP versi 5.5.0) PHP memutuskan untuk membuat mysql
extension berstatus deprecated. Yang artinya pengaksesan database MySQL menggunakan
fungsimysql extension sudah tidak disarankan lagi. Programmer PHP diharapkan pindah ke mysqli
extension atau PDO yang berbasis objek.
Alasannya, MySQL versi terbaru memiliki fitur-fitur yang semakin lengkap dan kompleks, sehingga PHP
memutuskan untuk membuat fungsi extension baru agar programmer PHP bisa menggunakan fiturfitur ini.
2. Koneksi MySQL dengan mysqli extension
Sebagai pengganti mysql extension, PHP menyediakan mysqli extension (mysqli merupakan
singkatan dari MySQL Improved). Mysqli extension ini pada dasarnya adalah perbaikan dari mysql
extension dan dikembangkan untuk mendukung fitur-fitur terbaru untuk MySQL 4.1 keatas.
Hampir semua fungsi yang ada pada mysql extension juga tersedia pada mysqli. Syntax (aturan
penulisan) mysqli sangat mirip dengan mysql extension. Sehingga jika anda telah lama menggunakan
mysql extension, akan sangat mudah untuk beralih menggunakan mysqli extension.
Selain menggunakan mysql maupun mysqli extension, cara ketiga untuk pengaksesan database MySQL
dari PHP adalah dengan menggunakan PHP Data Objects (atau sering disingkat denganPDO).
3. Koneksi MySQL dengan PDO (PHP Data Objects)
PDO (PHP Data Objects), adalah extension atau penambahan fitur dalam PHP yang dirancang
sebagai interface universal untuk pengaksesan berbagai jenis database (tidak hanya MySQL).
Contohnya, jika kita menggunakan PDO dalam menulis kode pemograman, lalu suatu saat website kita
bertukar database dari MySQL ke Oracle, maka kita tidak perlu mengubah semua kode program,
cukup mengubah cara pemanggilan PDO diawal program saja.
Dari ketiga cara koneksi PHP dengan MySQL ini, metode yang disarankan adalah
menggunakanmysqli atau PDO.

Perbandingan antara mysqli, PDO dan mysql extension


Sebagai perbandingan fitur antara ketiga jenis koneksi PHP-MySQL ini, berikut adalah tabel
perbandingan antara mysqli, PDO dan mysql extension yang bersumber dari manual resmi PHP:

118 | P a g e

http://www.duniailkom.com_________________________________________________________

Cara Penulisan mysql extension, mysqli extension, dan PDO (PHP Data
Objects)
Untuk mengetahui secara sekilas perbedaan cara pengaksesan database MySQL menggunakan mysql
extension, mysqli extension, dan PDO, berikut contoh kode PHPnya:
<?php
// cara mengakses MySQL menggunakan mysql extension:
$link = mysql_connect("localhost", "root", "qwerty");
mysql_select_db("universitas");
$result = mysql_query("SELECT * FROM mahasiswa");
$row = mysql_fetch_assoc($result);
// cara mengakses MySQL menggunakan mysqli extension:
$mysqli = new mysqli("localhost", "root", "qwerty", "universitas");
$result = $mysqli->query("SELECT * FROM mahasiswa");
$row = $result->fetch_assoc();
// cara mengakses MySQL menggunakan PDO:
$pdo = new PDO('mysql:host=localhost;dbname=universitas', 'root',
'qwerty');
$statement = $pdo->query("SELECT * FROM mahasiswa");
$row = $statement->fetch(PDO::FETCH_ASSOC);
?>

Dalam contoh diatas, dianggap bahwa user MySQL adalah root, password qwerty, dan nama
database universitas.
Anda tidak perlu memahami kode program diatas, karena kita akan membahasnya dengan lengkap
dalam tutorial belajar PHP MySQL di duniailkom ini.

119 | P a g e

http://www.duniailkom.com_________________________________________________________
Untuk tahap pertama, saya akan menggunakan metode mysql extension yang berbasis fungsi terlebih
dahulu. Walaupun metode ini tidak disarankan lagi, namun metode inilah yang paling mudah dipelajari
dan telah dikenal luas.
Setelah selesai membahas mysql extension, selanjutnya kita akan beralih ke mysqli extensionyang
bisa ditulis dengan procedural style (menggunakan fungsi-fungsi) ataupun dengan object style.
Terakhir, kita akan membahas cara membuat koneksi PHP MySQL menggunakan PDO. Cara
pengaksesan MySQL dengan PDO yang berbasis objek akan lebih mudah dipahami jika anda telah
mempelajari pemrograman berbasis objek.
Dalam tutorial selanjutnya, kita akan membahas pengertian extension PHP, dan cara pengaturan PHP
(setingan PHP) agar kita dapat menggunakan mysql extension, dalam tutorial Pengertian extension
PHP dan cara setting mysql extension.

Tutorial PHP MySQL Part 3: Pengertian Extension PHP dan Cara


Setting mysql extension
Jika anda mengistall PHP melalui XAMPP, maka mysql extension telah aktif secara default dan anda
tidak perlu melakukan apa-apa. Namun jika anda menginstall PHP secara terpisah, kita harus
mengaktifkan setingan PHP agar mendukung MySQL. Dalam tutorial kali ini kita akan membahas
tentang pengertian extension dalam PHP dan cara setting mysql extension.

Pengertian Extension dalam PHP


Sampai dengan tutorial kali ini, beberapa kali saya menggunakan istilah extension. Namun apakah
yang dimaksud dengan extension ini?
Extension di dalam PHP adalah istilah yang merujuk kepada kumpulan fungsi program tambahan yang
membuat PHP dapat mendukung berbagai fitur baru.
PHP terdiri dari aplikasi inti (PHP core), dan fungsi tambahan (extension). Dalam aplikasi inti PHP, PHP
tidak menyediakan fungsi yang menangani database MySQL. Penanganan untuk fungsi database ini
dipisahkan menjadi fungsi tambahan (extension). Selain database, extension dalam PHP menyediakan
berbagai fungsi lainnya untuk keperluan yang lebih khusus, seperti pembuatan gambar, kriptografi,
penanganan email, pembuatan PDF, dan lain-lain.

Cara Setting mysql extension dengan php.ini


Untuk mengaktifkan extension dalam PHP, bisa dilakukan dari file setingan php.ini (cara membuka
file php.ini telah kita pelajari pada tutorial Cara Mengubah File Konfigurasi PHP (php.ini)), lalu
cariextension=php_mysql.dll dan extension=php_mysqli.dll, pastikan menghapus tanda titik koma di
awal kedua extension ini untuk mengaktifkannya.

120 | P a g e

http://www.duniailkom.com_________________________________________________________

Masih pada file php.ini, pada bagian ini anda dapat melihat berbagai extension yang terdapat di dalam
PHP, bahkan sebahagian besar tidak aktif secara default.
File settingan php.ini menginstruksikan kepada PHP untuk mengaktifkan suatu extension, namun
file extension itu sendiri juga harus ada di dalam PHP. Anda bisa membuka
folder xampp\php\extuntuk melihat file-file extension yang digunakan untuk menambah fitur PHP.

Untuk memeriksa apakah setingan extension=php_mysql.dll sudah aktif, kita bisa menggunakan
fungsi phpinfo(). Anda bisa menjalankan fungsi phpinfo() didalam sebuah file php, atau bisa juga
121 | P a g e

http://www.duniailkom.com_________________________________________________________
dengan men-klik menu phpinfo() dari halaman localhost dari XAMPP. Dalam halaman phpinfo(),
carilah bagian mysql seperti tampilan berikut:

Jika anda menemukan bagian mysql, berarti extension mysql telah aktif dan kita bisa mulaI membuat
program untuk mengakses database melalui PHP.
Dalam tutorial belajar PHP MySQL berikutnya, kita akan mulai membuat kode program PHP agar bisa
terhubung dengan MySQL dalam tutorial Cara Membuat Koneksi PHP-MySQL dengan fungsi
mysql_connect.

Tutorial PHP MySQL Part 4: Cara Membuat Koneksi PHP dengan


MySQL (mysql_connect)
Didalam tutorial kali ini kita akan mulai masuk dengan kode program untuk membuat koneksi antara
PHP dengan MySQL. Seperti yang pernah kita bahas, PHP menyediakan 3 buah extension untuk
koneksi PHP-MySQL. Mulai dari tutorial ini dan beberapa tutorial kedepan, saya akan membahas cara
koneksi menggunakan mysql extension. Kali ini kita akan membahas cara membuat koneksi antara
PHP dengan database MySQL. Proses koneksi ini menggunakan fungsi mysql_connect().

122 | P a g e

http://www.duniailkom.com_________________________________________________________

Mengenal Fungsi koneksi PHP-MySQL: mysql_connect()


Untuk membuat koneksi antara PHP dengan MySQL menggunakan mysql extension, PHP
menyediakan fungsi mysql_connect().
Fungsi ini diibaratkan sebagai cara untuk login kedalam MySQL Server. Fungsi mysql_connect()
membutuhkan 3 argumen, dan mengembalikan nilai fungsi berupa variabel koneksi ke MySQL.
Berikut adalah format dasar penulisan fungsi mysql_connect():
$link = mysql_connect(mysql_host, 'mysql_user', 'mysql_password');
$link merupakan variabel yang akan menampung hasil dari fungsi mysql_connect (). Jika
berhasil terhubung dengan MySQL, $link akan berisi nilai yang berfungsi sebagai link koneksi
dengan MySQL. Link koneksi ini akan dibutuhkan sepanjang program PHP-MySQL nantinya. Di
dalam PHP, variabel $link ini dikenal dengan istilah handler, yakni variabel yang menghandlekoneksi ke MySQL.
mysql_host adalah argumen pertama dari fungsi mysql_connect(). Nilai mysql_host diisi
dengan alamat komputer dimana MySQL Server berjalan. Jika anda menjalankan MySQL
menggunakan XAMPP di komputer yang sama dengan tempat web server Apache berjalan,
maka alamat ini bisa diisi dengan localhost atau 127.0.0.1. Namun jika MySQL server
dijalankan dari komputer lain, argumen ini akan berisi IP address dari komputer tersebut.
mysql_user adalah nama user MySQL dimana kita akan login. Seperti root, admin, andi
dan lain-lain tergantung kepada user MySQL yang telah terdaftar di server. Cara membuat dan
menghapus user MySQL telah saya bahas pada Tutorial Cara Membuat dan Menghapus User
MySQL (CREATE USER). Jika anda menggunakan MySQL bawaan XAMPP, user root dapat
digunakan.
mysql_password diisi dengan password dari user yang dibuat pada argumen mysql_user.
Variabel $link yang berisi link koneksi PHP-MySQL (hasil dari fungsi mysql_connect()), termasuk ke
dalam kelompok tipe data khusus PHP yang disebut resources. Variabel Resources tidak bisa berdiri
sendiri dan biasanya digunakan sebagai argumen untuk fungsi lain. Anda bebas mengganti nama
variabel $link dengan nama lain, seperti $koneksi, $link_mysql, dll.
Jika koneksi dengan PHP gagal dilakukan, fungsi mysql_connect() akan mengembalikan nilai
Boolean FALSE. Hasil FALSE ini akan disimpan dalam variabel $link dan bisa kita gunakan dalam
perulangan IF untuk menampilkan error yang terjadi.

Cara Membuat Koneksi PHP dengan MySQL


Untuk mengetahui cara membuat koneksi antara MySQL dengan PHP, langsung saja kita masuk
kedalam contoh kode program cara penggunaan fungsi mysql_connect().
123 | P a g e

http://www.duniailkom.com_________________________________________________________
Berikut adalah kode PHP untuk membuat koneksi dengan MySQL:
<?php
//buat koneksi MySQL untuk user: root, tanpa password, alamat:
localhost
$link=mysql_connect('localhost','root','');
//cek apakah koneksi dengan MySQL berhasil
if ($link)
{
//koneksi berhasil
echo "Koneksi dengan MySQL berhasil";
}
else
{
//koneksi gagal
echo "Koneksi dengan MySQL gagal";
}
//memeriksa nilai dari $link
echo "<br />";
echo 'hasil var_dump variabel $link : ';
var_dump($link);
?>

Jika koneksi dengan MySQL berhasil, maka di dalam web browser akan tampil gambar seperti berikut
ini:

Pada bagian pertama kode program, saya membuat fungsi mysql_connect (localhost,root,).
Fungsi ini berarti saya mencoba login dengan MySQL Server yang berada di alamat localhost
(komputer yang sama dengan web server berada), nama user root dan password (string kosong,
yang berarti tanpa password).
Fungsi mysql_connect() mengembalikan kondisi status koneksi ke dalam variabel $link.
Variabel$link akan berisi link koneksi (bertipe resources) jika berhasil terkoneksi dengan MySQL, dan
akan bernilai TRUE jika dikonversi menjadi Boolean.
Namun variabel $link akan berisi nilai Boolean FALSE jika PHP gagal login ke MySQL. Nilai $link ini
selanjutnya bisa digunakan untuk pengecekan apakah koneksi berhasil atau tidak.

124 | P a g e

http://www.duniailkom.com_________________________________________________________
Jika terjadi kesalahan, misalkan saja saya mengubah password root menjadi 123456, maka tampilan
web browser akan seperti berikut ini:

Seperti yang terlihat, PHP mengeluarkan pesan error mysql_connect(): Access denied for user
root@localhost (using password: YES), yang berarti login ke MySQL gagal karena salah password
untuk user root.
Agar lebih informatif, diakhir program saya tampilkan nilai dari variabel $link dengan menggunakan
fungsi var_dump(). Anda akan melihat bahwa variabel $link bertipe data resources jika koneksi
berhasil, dan bertipe data Boolean FALSE, jika koneksi gagal.

125 | P a g e

http://www.duniailkom.com_________________________________________________________

Mengenal fungsi die() dan exit() dalam PHP


Salah satu fungsi PHP yang sering digunakan pada saat melakukan koneksi dengan MySQL adalah
fungsi die() dan exit().
Sesuai dengan namanya, fungsi ini bertujuan untuk membunuh atau keluar dari PHP. Kedua fungsi
ini bertujuan untuk membuat proses PHP berhenti diproses pada saat itu juga (pada saat fungsi ini
dipanggil).
Sebelum bunuh diri, fungsi die() dan exit() bisa menampilkan pesan terakhir.
Berikut adalah penggunaan fungsi die() dalam membuat koneksi antara PHP dengan MySQL:
<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','123');
//cek apakah koneksi dengan MySQL berhasil
if ($link)
{
//koneksi berhasil
echo "Koneksi dengan MySQL berhasil";
}
else
{
//koneksi gagal
die("Koneksi dengan MySQL gagal");
echo "Pesan ini tidak akan pernah ditampilkan";
}

126 | P a g e

http://www.duniailkom.com_________________________________________________________
?>

Fungsi die() pada kode diatas akan menyebabkan proses PHP berhenti jika login ke database MySQL
gagal dilakukan. Dengan menggunakan fungsi die(), kita bisa memastikan bahwa PHP tidak akan
mengeksekusi perintah-perintah selanjutnya.
Apabila kita tidak menggunakan die(), maka PHP akan terus menjalankan proses berikutnya yang akan
menghasilkan error (karena koneksi ke database memang tidak akan bisa dilakukan).

Menghentikan koneksi PHP MySQL dengan mysql_close()


Koneksi PHP dengan MySQL akan dihentikan secara otomatis pada saat eksekusi program selesai, yaitu
pada saat halaman PHP selesai diproses, sehingga kita tidak perlu menghentikanya secara manual.
Namun jika anda ingin menghentikan koneksi dengan MySQL pada saat program PHP sedang berjalan,
PHP menyediakan fungsi mysql_close(). Fungsi ini membutuhkan 1 buah argumen yang diisi dengan
variabel link koneksi hasil pemanggilan fungsi mysql_connect(). Variabel koneksi ini bersifat opsional,
dan jika diabaikan maka PHP akan menggunakan koneksi mysql terakhir.
Berikut adalah contoh penggunaan fungsi mysql_close():
<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','123');
//...Kode Program PHP-MySQL
//...Kode Program PHP-MySQL
//...Kode Program PHP-MySQL
//menghentikan koneksi dengan MySQL
mysql_close($link);
//...Kode Program PHP
//...Kode Program PHP
?>

Dalam tutorial kali ini, kita telah berhasil membuat koneksi antara PHP dengan MySQL Server. Namun
untuk berkomunikasi dengan database dalam MySQL, harus menggunakan query. Dalam tutorial
berikutnya kita akan membahas cara menjalankan query MySQL dari PHP dengan fungsi mysql_query.

Tutorial PHP MySQL Part 5: Cara Menjalankan query MySQL dari


PHP (mysql_query)
Jika koneksi antara PHP dan MySQL telah dibuat, langkah selanjutnya adalah menjalankan query
MySQL. Dalam tutorial kali ini kita akan mempelajari Cara Menjalankan query MySQL dari PHP dengan
fungsi mysql_query.

Mengenal Fungsi Query PHP-MySQL: mysql_query


Untuk menjalankan query MySQL, PHP menyediakan fungsi mysql_query(). Fungsi ini dijalankan
setelah koneksi berhasil dilakukan dengan fungsi mysql_connect().
Fungsi mysql_query() merupakan fungsi yang akan sering kita gunakan, karena dengan fungsi inilah
PHP akan melakukan percakapan dengan MySQL. Hampir seluruh perintah query MySQL yang kita
bahas pada tutorial belajar MySQL Dasar, dapat dijalankan dengan fungsi mysql_query().
Fungsi mysql_query() membutuhkan 2 argumen, dimana argumen pertama diisi dengan query
MySQL, dan argumen kedua diisi dengan link koneksi hasil fungsi mysql_connect(). Argumen kedua
ini bersifat opsional.
127 | P a g e

http://www.duniailkom.com_________________________________________________________

Berikut adalah format dasar penulisan fungsi mysql_query() dalam PHP:


$result = mysql_query("query_mysql",[$link_koneksi_mysql]);

$result adalah variabel yang akan menampung hasil dari fungsi mysql_query(). Jika
fungsimysql_query() berhasil dijalankan, variabel $result akan berisi hasil query, namun jika
query
gagal,
variabel
ini
akan
berisi
nilai
boolean
FALSE.
Variabel $result bertipe resources (sama dengan hasil dari fungsi mysql_conncect()). Nama
dari variabel ini tidak harus ditulis sebagai$result, anda bebas jika ingin menggantinya dengan
nama lain.
query_mysql adalah argumen pertama fungsi mysql_query(). Pada bagian inilah kita menulis
query MySQL. Query tersebut selanjutnya akan dikirim kepada MySQL Server untuk diproses.
Argumen ini harus pertipe string dan mengikuti aturan penulisan string didalam PHP. Contoh
query ini, misalnya SELECT * FROM mahasiswa, atau CREATE DATABASE universitas.
$link_koneksi_mysql adalah argumen kedua dari fungsi mysql_query(). Argumen ini diisi
dengan variabel hasil pemanggilan fungsi mysql_connect(). Argumen ini bersifat opsional, dan
jika diabaikan PHP akan menggunakan variabel mysql_connect() yang sedang terkoneksi saat
ini.

Cara Menjalankan query MySQL dari PHP


Untuk memahami cara penggunaan fungsi mysql_query(), langsung saja kita masuk kedalam contoh
program. Dalam contoh program berikut, saya akan membuat query untuk menampilkan seluruh
database yang ada di dalam MYSQL.
Berikut adalah contoh program penulisan fungsi mysql_query dalam PHP:
<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
//jika koneksi gagal, langsung keluar dari PHP
if (!$link)
{
die("Koneksi dengan MySQL gagal");
}
//jalankan query
$result=mysql_query('SHOW DATABASES',$link);
//tampilkan hasil query
while ($row = mysql_fetch_row($result))
{
echo $row[0];
echo "<br />";
}
?>

Jika anda menjalankan perintah diatas, didalam web browser akan tampil semua nama database yang
ada dalam MySQL.
128 | P a g e

http://www.duniailkom.com_________________________________________________________
Pada baris ke-3 dari program diatas, saya membuat koneksi dengan MySQL menggunakan fungsi
mysql_connect(). Fungsi ini menggunakan user root dan tanpa password. Hasil koneksi fungsi saya
simpan ke dalam variabel $link.
Selanjutnya pada baris ke-6 saya memeriksa nilai dari koneksi mysql_connect() dengan cara membuat
logika IF untuk variabel $link. Jika MySQL gagal diakses, maka fungsi die() akan memerintahkan PHP
untuk menghentikan program.
Namun jika koneksi berhasil, pada baris ke-12 saya membuat fungsi mysql_query() untuk menjalankan
query SHOW DATABASES. Query ini adalah perintah untuk menampilkan seluruh nama database
yang ada pada MySQL.
Kode program pada baris ke-15 digunakan untuk menampilkan hasil query. Fungsi
mysql_fetch_row() belum saya bahas, dan akan kita pelajari pada tutorial berikutnya.
Apabila query yang digunakan lebih panjang dan kompleks, anda bisa menyimpannya di dalam sebuah
variabel terlebih dahulu, baru kemudian dijalankan dengan mysql_query(), seperti contoh berikut ini:
$query="SELECT * FROM mahasiswa WHERE IPK>5";
$result=mysql_query($query,$link);

Dengan memindahkan query kedalam variabel, akan membuat program kita menjadi lebih rapi.
Argumen kedua dari fungsi mysql_query() juga boleh tidak ditulis, dan PHP akan menggunakan link
koneksi MySQL terakhir yang tersedia, seperti contoh berikut:
$query="SELECT * FROM mahasiswa WHERE IPK>5";
$result=mysql_query($query);

Fungsi mysql_connect() dan mysql_query() adalah fungsi paling dasar dalam koneksi PHP dengan
MySQL. Untuk menampilkan hasil dari query tersebut, PHP menyediakan berbagai cara yang bisa
digunakan untuk berbagai situasi. Cara pengaksesan ini akan kita pelajari pada artikel-artikel
selanjutnya.
Dalam tutorial berikutnya, kita akan mempelajari cara Cara Menampilkan Hasil Query MySQL dari PHP
dengan fungsi mysql_fetch_row().

Tutorial PHP MySQL Part 6: Cara Menampilkan Tabel MySQL dari


PHP (mysql_fetch_row)
Setelah menjalankan fungsi mysql_connect() untuk membuat koneksi antara PHP dengan MySQL,
dan menjalankan query MySQL dengan fungsi mysql_query(), pada tutorial kali ini kita akan
membahas tentang fungsi mysql_fetch_row() yang digunakan untuk menampilkan tabel hasil query
MySQL tersebut.

Menampilkan Data MySQL dengan fungsi mysql_fetch_row


Perintah SELECT adalah query MySQL yang paling sering gunakan. Query ini berfungsi untuk
menampilkan data dari database. Data yang ditampilkan MySQL biasanya diberikan dalam bentuk
tabel yang terdiri dari baris dan kolom.
Untuk menampilkan data MySQL di dalam PHP, hasil dari fungsi mysql_query() harus diproses lebih
lanjut agar bisa ditampilkan di dalam web browser. PHP menyediakan banyak cara untuk
menampilkan hasil query MySQL. Salah satunya akan kita bahas dalam tutorial kali ini dengan
fungsi: mysql_fetch_row().
Fungsi mysql_fetch_row() digunakan untuk menampilkan tabel secara baris per baris.
Fungsimysql_fecth_row() akan mengembalikan nilai 1 baris dari sebuah tabel pada setiap
pemanggilan. Sehingga untuk dapat menampilkan seluruh isi tabel, fungsi mysql_fecth_row() harus
dipanggil secara berulang.
129 | P a g e

http://www.duniailkom.com_________________________________________________________
Berikut adalah format dasar penulisan fungsi mysql_fetch_row() dalam PHP
$row = mysql_fetch_row($result)

$row adalah variabel yang akan menampung hasil fungsi mysql_fetch_row(). Hasil dari
fungsimysql_fetch_row() berupa tipe data array dengan key merujuk kepada kepada urutan
kolom, dan value-nya (nilai dari array) adalah isi dari kolom tersebut.
$result adalah variabel inputan query untuk fungsi mysql_fecth_row(). Variabel ini berasal
dari fungsi mysql_query().

Cara pengambilan data dari variabel $row, penting untuk dipahami.


Variabel $row hasil fungsi mysql_fetch_row() bertipe array. Jika sebuah baris di dalam tabel MySQL
terdiri
dari
3
kolom,
maka
varibel
$row
akan
berisi
nilai
sebagai
berikut: $row[0]=nilai_kolom_1,$row[1]=nilai_kolom_2, dan $row[2]=nilai_kolom_3. Index array
dimulai dari 0, dan karena itu kolom 1 berada pada index 0, bukan index 1.
Yang perlu menjadi perhatian, fungsi mysql_fetch_row() hanya membaca 1 baris pada sekali
pemanggilan. Jika tabel kita terdiri dari 5 baris, maka fungsi mysql_fecth_row() harus diulang
sebanyak 5 kali.

Cara Menampilkan Tabel MySQL dari PHP


Agar lebih mudah memahami cara kerja fungsi mysql_fetch_row(), kita akan langsung praktek dengan
kode program.
Karena fungsi mysql_fetch_row() digunakan untuk menampilkan data, kita harus membuat datanya
terlebih dahulu, yaitu berupa database MySQL beserta tabelnya.
Sebagai data contoh dan sarana latihan menggunakan query MySQL, saya akan membuat database
universitas, dan tabel mahasiswa_ilkom. Database universitas dan tabel mahasiswa_ilkom ini akan
saya gunakan pada tutorial PHP MySQL selanjutnya.
Berikut adalah kode yang diperlukan:
<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
//jika koneksi gagal, langsung keluar dari PHP
if (!$link)
{
die("Koneksi dengan MySQL gagal");
}
//buat database universitas
$result=mysql_query('CREATE DATABASE universitas');
if (!$result)
{
die("Database mahasiswa gagal dibuat");
}
//gunakan database universitas
$result=mysql_query('USE universitas');
if (!$result)
{
die("Database mahasiswa gagal digunakan");
}
//buat tabel mahasiswa_ilkom

130 | P a g e

http://www.duniailkom.com_________________________________________________________
$query= "CREATE TABLE mahasiswa_ilkom (nim CHAR(9) NOT NULL PRIMARY
KEY,
nama CHAR(50), umur INT, tempat_lahir CHAR(50), IPK DECIMAL (3,2))";
$result=mysql_query($query);
if (!$result)
{
die("Tabel mahasiswa_ilkom gagal dibuat");
}
//tambahkan data ke dalam tabel mahasiswa_ilkom
$query="INSERT INTO mahasiswa_ilkom VALUES ('089045001', 'Andi Suryo',
23, 'Jakarta', 2.7)";
mysql_query($query);
$query="INSERT INTO mahasiswa_ilkom VALUES ('109245021', 'Santi
Syanum',
21, 'Malang', 3.2)";
mysql_query($query);
$query="INSERT INTO mahasiswa_ilkom VALUES ('099145055', 'Neil
Situmorang',
22, 'Medan', 1.9)";
mysql_query($query);
$query="INSERT INTO mahasiswa_ilkom VALUES ('089023013', 'Alex
Supriyanto',
23, 'Surabaya', 2.9)";
mysql_query($query);
$query="INSERT INTO mahasiswa_ilkom VALUES ('109223041', 'Rani
Sabrina',
21, 'Padang',3.7)";
mysql_query($query);
echo "Database universitas dan Tabel mahasiswa_ilkom berhasil dibuat";
?>

Kode PHP diatas sedikit panjang jika dibandingkan contoh-contoh kita sebelumnya, namun intinya
perintah diatas adalah untuk membuat database universitas, dan tabel mahasiswa_ilkom. Setelah
tabel terbentuk, kemudian saya menambahkan beberapa data kedalam tabel tersebut.
Dari contoh diatas, anda juga dapat melihat cara pembuatan database, pembuatan tabel, dan cara
memasukkan nilai kedalam database. Semuanya dijalankan dengan fungsi mysql_query().
Jika anda sudah paham tentang query MySQL, perintah query diatas tentunya tidak terlalu sulit untuk
dipahami. Namun jika ragu tentang instruksi query yang saya gunakan, anda bisa mempelajarinya
di tutorial MySQL duniailkom.
Fungsi-fungsi PHP yang saya gunakan juga telah kita pelajari pada tutorial sebelumnya. Tambahan
baru mungkin ada pada penggunaan logika IF untuk menangani fungsi yang gagal. Saya menggunakan
instruksi (!$result) untuk masuk pada fungsi die() jika fungsi tersebut gagal dijalankan.
Sebagai contoh, jika anda menjalankan kode diatas sebanyak 2 kali, maka akan tampil pesan Database
mahasiswa gagal dibuat. Hal ini terjadi karena terdapat duplikasi database di dalam MySQL, sehingga
kode PHP akan berhenti pada baris ke 15 karena fungsi die().

Cara Menampilkan Baris Tabel Dengan Fungsi mysql_fetch_row


131 | P a g e

http://www.duniailkom.com_________________________________________________________
Setelah tabel contoh selesai dibuat, saatnya kita mencoba menampilkan data dari
tabelmahasiswa_ilkom dengan fungsi mysql_fetch_row().
Cara paling dasar untuk menampilkan data dari mysql adalah seperti kode program berikut ini:
<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
//jika koneksi gagal, langsung keluar dari PHP
if (!$link)
{
die("Koneksi dengan MySQL gagal");
}
//gunakan database universitas
$result=mysql_query('USE universitas');
if (!$result)
{
die("Database mahasiswa gagal digunakan");
}
//tampilkan tabel mahasiswa_ilkom
$result=mysql_query('SELECT * FROM mahasiswa_ilkom');
$row=mysql_fetch_row($result);
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
?>

Kode program dari baris 1 sampai baris 16 merupakan persiapan untuk mengkoneksikan MySQL dan
memilih database universitas.
Perhatikan pada baris ke 12, dimana saya menjalankan query USE universitas. Query ini ditujukan
untuk memberitahu MySQL bahwa kita akan menggunakan database mahasiswa. Alternatif
penulisan mysql_query (USE universitas) adalah dengan menggunakan fungsi mysql_select_db
(universitas). Anda bebas ingin menggunakan salah satunya.
Pada baris ke-20 saya menjalankan query SELECT untuk menampilkan seluruh isi table
mahasiswa_ilkom. Cara menjalankannya adalah dengan fungsi mysql_query() dengan perintah
query: SELECT * FROM mahasiswa_ilkom. Hasil fungsi ditampung kedalam variabel $result.
Variabel $result selanjutnya diproses dengan fungsi mysql_fetch_row($result), dan disimpan dalam
variabel $row.
132 | P a g e

http://www.duniailkom.com_________________________________________________________
Seperti yang telah kita pelajari, bahwa fungsi mysql_fetch_row() akan menyimpan hasil query
sebagai array dengan key adalah urutan kolom mulai dari key ke-0 untuk kolom ke-1 tabel, $row[1]
untuk kolom ke-2, dan begitu seterusnya. Karena tabel mahasiswa_ilkom hanya memiliki 5 kolom,
maka $row[4] adalah kolom terakhir.

Cara Menampilkan Seluruh Tabel Dengan Fungsi mysql_fetch_row


Sesuai namanya, fungsi mysql_fetch_row() hanya akan menampilkan baris perbaris, jadi bagaimana
caranya untuk menampilkan seluruh tabel mahasiswa_ilkom? Caranya adalah dengan mengulang
fungsi mysql_fetch_row() sebanyak jumlah baris yang ingin ditampilkan.
Sehingga contoh program kita menjadi sebagai berikut:
<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
//gunakan database universitas
$result=mysql_query('USE universitas');
//tampilkan tabel mahasiswa_ilkom
$result=mysql_query('SELECT * FROM mahasiswa_ilkom');
$row=mysql_fetch_row($result);
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";
$row=mysql_fetch_row($result);
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";
$row=mysql_fetch_row($result);
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";
$row=mysql_fetch_row($result);
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";
$row=mysql_fetch_row($result);
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
?>

133 | P a g e

http://www.duniailkom.com_________________________________________________________
Pada contoh diatas, saya menghapus baris fungsi die() semata-mata agar contoh program kita tidak
terlalu panjang.
Kode program diatas berjalan sebagaimana dengan seharusnya, karena pada setiap pemanggilan
fungsi mysql_fetch_row(), PHP akan menggeser penunjuk baris MySQL ke baris berikutnya di dalam
tabel. Sehingga untuk pemanggilan mysql_fetch_row() ke-2 posisi pointer MySQL akan berada dibaris
ke-2 dari tabel, dan begitu seterusnya hingga pemanggilan mysql_fetch_row() ke-5.

Menampilkan Tabel MySQL Dengan Perulangan For


Namun jika anda perhatikan, fungsi mysql_fetch_row() yang ditulis secara berulang-ulang pada
contoh sebelumnya merupakan pekerjaan yang cocok untuk fungsi perulangan. Sehingga dengan
menggunakan perulangan for, kode kita akan menjadi lebih mudah ditulis.
<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
//gunakan database universitas
$result=mysql_query('USE universitas');
//tampilkan tabel mahasiswa_ilkom
$result=mysql_query('SELECT * FROM mahasiswa_ilkom');
for ($i=1;$i<=5;$i++)
{
$row=mysql_fetch_row($result);
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";
}
?>

Fungsi diatas akan menampilkan seluruh baris yang ada di dalam tabel mahasiswa_ilkom dengan
melakukan perulangan fungsi mysql_fetch_row() sebanyak 5 kali.
Namun masih ada 1 hal lagi yang bisa kita perbaiki dari program diatas.

Menampilkan Tabel MySQL Dengan Perulangan While


Perulangan for mengharuskan kita untuk menulis langsung jumlah perulangan yang harus dilakukan.
Pada saat penulisan program, kita telah mengetahui bahwa tabel mahasiswa_ilkomberisi 5 baris,
Namun bagaimana jika ternyata data di dalam tabel saat ini tidak lagi 5, tetapi sudah lebih dari itu?
Untuk perulangan dimana banyaknya perulangan tidak diketahui pada saat penulisan program, kita
bisa beralih ke perulangan while (Tutorial Cara Penulisan Perulangan While dalam PHP).
Untuk membuat hal ini menjadi lebih mudah, fungsi mysql_fetch_row() akan mengembalikan
nilaiFALSE jika pointer telah berada di baris terakhir tabel MySQL. Nilai kembalian ini menjadi variabel
yang tepat untuk kondisi berhenti pada perulangan while.
Berikut adalah contoh program penggunaan mysql_fetch_row () dengan perulangan while:
<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
//gunakan database universitas
$result=mysql_query('USE universitas');

134 | P a g e

http://www.duniailkom.com_________________________________________________________
//tampilkan tabel mahasiswa_ilkom
$result=mysql_query('SELECT * FROM mahasiswa_ilkom');
while ($row=mysql_fetch_row($result))
{
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";
}
?>

Konsep perulangan while seperti diatas akan sering anda lihat untuk menampilkan data dari
database MySQL.
Selain menggunakan fungsi mysql_fetch_row(), PHP masih memiliki fungsi lainnya untuk
menampilkan data tabel dari MySQL, salah satunya adalah fungsi mysql_fecth_array().
Fungsi mysql_fecth_array() lebih fleksibel karena kita tidak hanya bisa menggunakan angka, namun
juga nama kolom sebagai key array. Pembahasan tentang fungsi mysql_fecth_array() akan kita
pelajari dalam tutorial selanjutnya: Cara Menampilkan Tabel MySQL dari PHP (mysql_fetch_array().
Tutorial PHP MySQL Part 7: Cara Menampilkan Tabel MySQL dari PHP (mysql_fetch_array)
Selain menggunakan fungsi mysql_fetch_row(), PHP juga menyediakan fungsi lain untuk
menampilkan data dari MySQL, yakni fungsi mysql_fetch_array(). Dalam tutorial kali ini kita akan
membahas cara penggunaan fungsi mysql_fetch_array(), dan perbedaanya dengan
mysql_fetch_row().

Menampilkan Tabel MySQL dengan fungsi mysql_fetch_array


Fungsi mysql_fetch_array() pada dasarnya hampir sama dengan fungsi mysql_fetch_row(), namun
fungsi mysql_fetch_array() memberikan alternatif cara menampilkan data MySQL dengan lebih
mudah.
Jika dalam fungsi mysql_fetch_row() hasil fungsinya berupa array dengan key atau indexnya berupa
angka, seperti : $row[1], $row[2] dan $row[3], maka di dalam mysql_fetch_array(), kita bisa
menggunakan nama kolom dari tabel MySQL sebagai key atau index array seperti berikut
ini:$row[nim], $row[nama] dan $row[umur]. Cara penulisan seperti ini akan memudahkan
pembuatan program.
Selain menggunakan nama kolom pada index array, fungsi mysql_fetch_array() juga bisa
menggunakan index penomoran kolom seperti mysql_fetch_row(), atau bahkan keduanya sekaligus.
Untuk mengatur fitur ini, fungsi mysql_fetch_array() membutuhkan parameter tambahan.
Berikut adalah format dasar penulisan fungsi mysql_fetch_array() dalam PHP:
$row= mysql_fetch_array($result,[tipe_hasil])

$row adalah variabel yang akan menampung hasil fungsi mysql_fetch_array(). Hasil dari
fungsi mysql_fetch_array() berupa tipe data array dengan key yang bergantung kepada
konstanta tipe_hasil.
$result adalah variabel hasil menjalankan query MySQL yang berasar dari
fungsimysql_query().
tipe_hasil merupakan konstanta opsional yang digunakan untuk mengatur index array dari
hasil fungsi mysql_fetch_array(). Konstanta yang bisa digunakan adalah salah satu dari ketiga
nilai berikut: MYSQL_NUM, MYSQL_ASSOC atau MYSQL_BOTH. Jika argumen ini tidak ditulis,
nilai defaultnya adalah MYSQL_BOTH.

135 | P a g e

http://www.duniailkom.com_________________________________________________________

Perbedaan
mysql_fetch_array:
MYSQL_BOTH

MYSQL_NUM,

MYSQL_ASSOC

dan

Cara mengakses array dari fungsi mysql_fetch_array() bergantung kepada argumen tipe_hasil.
Argumen tipe_hasil hanya bisa berisi satu dari 3 konstanta: MYSQL_NUM, MYSQL_ASSOC atau
MYSQL_BOTH.
Jika argumen keduadari fungsi mysql_fetch_array() diisi MYSQL_NUM, maka index array akan menjadi
angka (sama seperti hasil mysql_fetch_row()), dan bisa ditampilkan seperti: $row[1], $row[2] dan
$row[3].
Jika argumen kedua diisi MYSQL_ASSOC, index array akan menjadi nama kolom, dan bisa ditampilkan
seperti: $row[nim], $row[nama] dan $row[umur].
Opsi ketiga, jika argumen diisi MYSQL_BOTH maka index array mendukung 2 pemanggilan, yakni
berupa angka dan nama kolom.
Sama seperti fungsi mysql_fetch_row(), mysql_fetch_row() hanya membaca 1 baris pada sekali
pemanggilan. Jika tabel kita terdiri dari 5 baris, maka fungsi mysql_fecth_array() harus diulang
sebanyak 5 kali (atau menggunakan metoda perulangan while seperti yang kita lakukan pada tutorial
mysql_fetch_row().

Cara Penggunaan Fungsi mysql_fecth_array()


Agar lebih mudah dipahami, langsung saja kita masuk kedalam contoh kode program. Masih
menggunakan contoh database universitas yang dibuat pada tutorial mysql_fetch_row(), kali ini saya
akan menggunakan fungsi mysql_fetch_array() untuk menampilkan hasilnya.
Berikut adalah contoh penggunaan fungsi mysql_fetch_array() dalam PHP:
<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
//gunakan database universitas
$result=mysql_query('USE universitas');
//tampilkan tabel mahasiswa_ilkom
$result=mysql_query('SELECT * FROM mahasiswa_ilkom');
while ($row=mysql_fetch_array($result, MYSQL_NUM))
{
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";
}
?>

136 | P a g e

http://www.duniailkom.com_________________________________________________________

Dalam contoh diatas, baris 1-6 merupakan kode program untuk membuat koneksi dengan MySQL.
Pada baris ke-9, saya membuat query SELECT * FROM mahasiswa_ilkom yang akan mengembalikan
seluruh isi tabel mahasiswa_ilkom.
Jika diperhatikan, kode program diatas sama persis dengan contoh terakhir pada tutorial
mysql_fetch_row(), hanya pada baris ke 10 saya menggantinya dengan fungsi mysql_fetch_array().
Konstanta MYSQL_NUM pada argumen ke-2 fungsi mysql_fetch_array(), menginstruksikan kepada
PHP bahwa nilai kembalian untuk variabel $row adalah array dengan index angka, sehingga hasilnya
sama persis dengan mysql_fetch_row() yang diakses dengan $row[0] untuk kolom pertama
tabel, $row[1] untuk kolom kedua tabel, dan seterusnya.
Jika menggunakan konstanta MYSQL_NUM akan membuat fungsi mysql_fetch_array() sama
denganmysql_fetch_row(), bagaimana dengan MYSQL_ASSOC? Dalam contoh berikut, saya akan
mengubah konstanta fungsi mysql_fetch_array() dengan MYSQL_ASSOC :
<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
//gunakan database universitas
$result=mysql_query('USE universitas');
//tampilkan tabel mahasiswa_ilkom
$result=mysql_query('SELECT * FROM mahasiswa_ilkom');
while ($row=mysql_fetch_array($result,MYSQL_ASSOC))
{
echo $row['nim']." ".$row['nama']." ".$row['umur']." ";
echo $row['tempat_lahir']." ".$row['IPK'];
echo "<br />";
}
?>

Pada contoh kali ini, pada baris ke-10, fungsi mysql_fetch_array() saya panggil dengan konstanta
MYSQL_ASSOC sebagai argumen kedua. Dengan cara ini, hasil kembalian query, berupa array dengan
index nama kolom dari tabel MySQL.
Karena menggunakan konstanta MYSQL_ASSOC, cara pengaksesan nilai $row harus menggunakan
index nama kolom tabel. Jika di dalam MySQL nama kolom adalah nim, maka untuk menampilkan
data kolom tersebut, kita menggunakan $row[nim]. Jika di dalam MySQL nama kolom adalah

137 | P a g e

http://www.duniailkom.com_________________________________________________________
tempat_lahir, untuk menampilkan data kolom tersebut, adalah dengan $row[tempat_lahir], dan
seterusnya.
Dengan cara ini, kita akan mudah untuk merancang tampilan tabel MySQL, terutama jika urutan kolom
tidak ditampilkan secara berurutan.

Untuk pilihan konstanta terakhir: MYSQL_BOTH, MySQL akan mengembalikan nilai $row yang bisa
diakses baik dengan index angka maupun dengan index nama kolom. Berikut adalah contoh kode
programnya:
<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
//gunakan database universitas
$result=mysql_query('USE universitas');
//tampilkan tabel mahasiswa_ilkom
$result=mysql_query('SELECT * FROM mahasiswa_ilkom');
while ($row=mysql_fetch_array($result,MYSQL_BOTH))
{
echo $row[0]." ".$row['nama']." ".$row['umur']." ";
echo $row[3]." ".$row['IPK'];
echo "<br />";
}
?>

Seperti yang terlihat, saya membuat perintah $row[0] dan $row[nama] dalam pemanggilan yang
sama, dan PHP dapat menampilkan hasil sesuai dengan yang diharapkan.

138 | P a g e

http://www.duniailkom.com_________________________________________________________

Pada dasarnya, pengaksesan MySQL melalui PHP, hanya membutuhkan 3 fungsi utama,
yaknimysql_connect(), mysql_query(), dan mysql_fecth_array(). Sampai disini, kita telah
mempelajari ketiga fungsi penting tersebut.
Dalam tutorial selanjutnya, kita akan mempelajari cara menampilkan pesan error dari MySQL ketika
query yang dijalankan tidak sesuai.

Tutorial PHP MySQL Part 8: Cara Menampilkan Pesan Error MySQL


(mysql_errno dan mysql_error)
Kedua fungsi yang akan kita bahas dalam tutorial kali ini berkaitan dengan cara penanganan kesalahan
dari MySQL. Ketika sebuah query dijalankan, pesan error yang dihasilkan oleh MySQL tidak langsung
ditampilkan PHP. Untuk menampilkan pesan kesalahan dari MySQL, kita harus memanggilnya
menggunakan fungsi mysql_errno() dan mysql_error().
Cara Menampilkan Pesan Error MySQL dalam PHP
Agar lebih informatif, ketika query tidak berjalan dengan semestinya, PHP menyediakan 2 buah fungsi
untuk menampilkan pesan error dari MySQL, yaitu fungsi mysql_errno() dan mysql_error(). Kedua
fungsi ini membutuhkan 1 buah argumen yang bersifat opsional, yakni variabel hasil pemanggilan
fungsi mysql_connect(). Tetapi, jika argumen tidak ditulis, PHP akan menggunakan koneksi MySQL
terakhir yang tersedia.
Fungsi mysql_errno() akan menampilkan nomor atau kode error MySQL, sedangkan
fungsimysql_error() akan menampilkan penjelasan error tersebut.
Contoh Penggunaan Fungsi mysql_errno dan mysql_error
Sebagai contoh penggunaan kedua fungsi tersebut, silahkan jalankan kode program berikut ini:
<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
//jika koneksi gagal, langsung keluar dari PHP
if (!$link)
{
die("Koneksi dengan MySQL gagal");
}
//jalankan query
$query="DROP DATABASE tidak_ada";
$result=mysql_query($query,$link);
echo "Query yang dijalankan: $query";
echo "<br />";
echo "Kode error: ".mysql_errno($link);
echo "<br />";
echo "Pesan error: ".mysql_error();
?>

139 | P a g e

http://www.duniailkom.com_________________________________________________________

Pada kode diatas, saya mencoba menjalankan perintah untuk menghapus database tidak_ada yang
memang tidak tersedia di dalam MySQL. Jika kita menjalankan query tersebut tanpa bantuan
fungsimysql_errno() dan mysql_error(), maka kita tidak tahu apa pesan error dari MySQL.
Perhatikan juga bahwa pada pemanggilan fungsi mysql_error() pada baris terakhir, saya tidak
memberikan argumen, karena sifatnya yang opsional.
Fungsi mysql_errno() dan mysql_error() yang kita bahas disini sangat berguna di dalam proses
pembuatan program, karena kita bisa mengetahui kenapa hasil dari MySQL tidak sesuai dengan apa
yang kita inginkan.
Masih berkaitan dengan pemeriksaan hasil query, di dalam tutorial belajar PHP MySQL selanjutnya
kita akan membahas tentang Cara Menampilkan Jumlah Baris Tabel MySQL menggunakan fungsi

Tutorial PHP MySQL Part 9: Cara Menampilkan Jumlah Baris Tabel


MySQL (mysql_num_rows)
Dalam tutorial PHP MySQL kali ini kita akan membahas 2 fungsi (function) PHP yang digunakan
untuk menampilkan jumlah baris dari Tabel MySQL. Fungsi yang akan kita bahas adalah
mysql_num_rows dan mysql_affected_rows.

Cara Penggunaan Fungsi mysql_num_rows


Fungsi mysql_num_rows() digunakan untuk mengetahui berapa banyak jumlah baris hasil
pemanggilan fungsi mysql_query(). Fungsi ini membutuhkan 1 buah argumen, yakni
variabelresources hasil dari fungsi mysql_query().
Berikut adalah contoh penggunaannya:
<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
//jika koneksi gagal, langsung keluar dari PHP
if (!$link)
{
die("Koneksi dengan MySQL gagal");
}
//gunakan database universitas
$result=mysql_query('USE universitas');

140 | P a g e

http://www.duniailkom.com_________________________________________________________
if (!$result)
{
die("Database mahasiswa gagal digunakan");
}
//jalankan query
$result=mysql_query("SELECT * FROM mahasiswa_ilkom");
echo "Total mahasiswa berjumlah ".mysql_num_rows($result)." orang.";
?>

Jika kode diatas dijalankan, hasil yang didapat adalah sebagai berikut:
Total mahasiswa berjumlah 5 orang
Fungsi mysql_num_rows() ini cocok digunakan jika yang kita inginkan hanya konfirmasi mengenai ada
atau tidak sebuah data di dalam database.

Cara Penggunaan Fungsi mysql_affected_rows


Fungsi mysql_affected_rows() digunakan untuk mengetahui jumlah baris tabel yang dikenai proses
oleh query MySQL. Hasil ini biasanya diperlukan jika kita ingin mengetahui dengan lebih detail tentang
proses yang berlangsung.
Sebagai contoh, kita ingin melakukan operasi DELETE kepada sebuah tabel. Hal ini bisa dilakukan
dengan fungsi mysql_query. Namun kita tidak bisa mengetahui berapa jumlah baris yang telah
dihapus.
Jika menggunakan MySQL, informasi ini ditampilkan langsung setelah query:

Untuk mengambil informasi ini dari PHP, kita menggunakan fungsi mysql_affected_rows(). Berikut
adalah contoh penggunaannya:
<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
//jika koneksi gagal, langsung keluar dari PHP

141 | P a g e

http://www.duniailkom.com_________________________________________________________
if (!$link)
{
die("Koneksi dengan MySQL gagal");
}
//gunakan database universitas
$result=mysql_query('USE universitas');
if (!$result)
{
die("Database mahasiswa gagal digunakan");
}
//jalankan query
$result=mysql_query("DELETE FROM mahasiswa_ilkom WHERE umur='23'");
echo "Data yang di hapus sebanyak: ".mysql_affected_rows()." orang.";
?>

Dan, hasil yang ditampilkan adalah:


Data yang di hapus sebanyak: 2 orang.
Baik fungsi mysql_num_rows dan mysql_affected_rows sering digunakan di dalam situasi dimana kita
membutuhkan informasi terkait query MySQL yang dijalankan. Kedua fungsi ini melengkapi fungsifungsi lain yang telah kita pelajari di dalam tutorial PHP MySQL ini.
Pada tutorial PHP MySQL selanjutnya, kita akan membahas cara menampilkan tabel MySQL dengan
menggunakan objek (fungsi mysql_fetch_object).

Tutorial PHP MySQL Part 10: Cara Menampilkan Tabel MySQL


dengan objek (mysql_fetch_object)
Pemrograman berbasis objek sudah menjadi standar dalam pemrograman modern saat ini, termasuk
PHP. Dalam tutorial belajar PHP MySQL kali ini kita akan membahas fungsimysql_fetch_object yang
digunakan untuk menampilkan hasil tabel MySQL sebagai objek.

Penggunaan Objek untuk Menampilkan data MySQL


Fungsi mysql_fetch_row, mysql_fetch_assoc, dan mysql_fetch_array yang telah kita pelajari
sebelumnya, menggunakan array untuk menampung hasil query MySQL. Sebagai contoh, untuk
menampilkan hasil tabel mahasiswa_ilkom dengan fungsi mysql_fetch_assoc, kita bisa mengaksesnya
dengan cara berikut:
$row['nim'], $row['nama'], $row['umur'], $row['tempat_lahir'], dan $row['IPK']
Dengan kata lain, nama kolom berfungsi sebagai key dari array $row.
Selain menggunakan array, PHP juga menyediakan fungsi mysql_fetch_object jika kita ingin
mengakses hasil query menggunakan notasi objek. Nama kolom akan berfungsi sebagai propertydari
objek $row. Menggunakan contoh tabel mahasiswa_ilkom ,maka cara mengaksesnya adalah sebagai
berikut:
$row->nim, $row->nama, $row->umur, $row->tempat_lahir, dan $row->IPK
Karakter tanda panah (->) digunakan untuk mengakses property dari sebuah objek di dalam PHP.

142 | P a g e

http://www.duniailkom.com_________________________________________________________

Cara Penggunaan Fungsi mysql_fetch_object


Selain perbedaan cara akses diatas, penggunaan fungsi mysql_fetch_object untuk menampilkan tabel
MySQL hampir sama dengan fungsi array seperti mysql_fetch_row atau mysql_fetch_array.
Berikut adalah modifikasi kode program yang sebelumnya kita gunakan pada
tutorialmysql_fetch_array untuk menampilkan seluruh isi tabel mahasiswa_ilkom:
<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
//jika koneksi gagal, langsung keluar dari PHP
if (!$link)
{
die("Koneksi dengan MySQL gagal");
}
//gunakan database universitas
$result=mysql_query('USE universitas');
if (!$result)
{
die("Database mahasiswa gagal digunakan");
}
//tampilkan tabel mahasiswa_ilkom
$result=mysql_query('SELECT * FROM mahasiswa_ilkom');
while ($row=mysql_fetch_object($result))
{
echo $row->nim." ".$row->nama." ".$row->umur." ";
echo $row->tempat_lahir." ".$row->IPK;
echo "<br />";
}
?>

Jika anda telah mempelajari tutorial mysql_fetch_array di duniailkom sebelumnya, maka kode diatas
sangat mirip. Saya hanya mengubah fungsi mysql_fetch_array dengan mysql_fetch_object, lalu
melakukan penyesuaian untuk pengaksesan property objek $row.
Pengaksesan dengan objek ini akan lebih lengkap apabila kita menggunakan
extension mysqli atauPDO. Kedua metode ini akan kita pelajari dalam tutorial terpisah nantinya.
Menutup cara penggunaan mysql extension (sebelum kita masuk ke mysqli extension), dalam tutorial
berikutnya saya akan mencoba mengkombinasikan HTML, CSS, PHP dan MySQL untuk menampilkan
data dengan tampilan yang menarik. Selanjutnya dalam Tutorial PHP MySQL: Cara Penyajian Data
MySQL dalam bentuk tabel HTML dengan CSS.

Tutorial PHP MySQL Part 11: Cara Penyajian Data MySQL dalam
bentuk tabel HTML dengan CSS

143 | P a g e

http://www.duniailkom.com_________________________________________________________
Dari awal tutorial PHP MySQL di duniailkom, kita hanya fokus kedalam kode PHP yang digunakan untuk
menampilkan tabel MySQL. Dalam tutorial kali ini, saya mencoba mengkombinasikan HTML dengan
CSS untuk menampilkan data hasil query MySQL ke dalam bentuk tabel.

Menyajikan Data MySQL dengan Tabel HTML dan CSS


Umumnya, hasil query MySQL yang kita ambil dari database akan ditampilkan ke dalam bentuk tabel.
Dengan mengkombinasikan PHP, MySQL, HTML dan CSS, kita bisa menampilkan data tabel MySQL
dengan desain yang beragam. Dalam tutorial PHP MySQL ini, saya akan mencoba menampilkan
tabel mahasiswa_ilkom dengan tampilan akhir seperti gambar berikut:

Tampilan diatas di dapat dengan mengkombinasikan PHP, MySQL, HTML dan CSS. Dan berikut adalah
kode program yang digunakan:
<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
//jika koneksi gagal, langsung keluar dari PHP
if (!$link)
{
die("Koneksi dengan MySQL gagal");
}
//gunakan database universitas
$result=mysql_query('USE universitas');
if (!$result)
{
die("Database mahasiswa gagal digunakan");
}
//tampilkan tabel mahasiswa_ilkom
$result=mysql_query('SELECT * FROM mahasiswa_ilkom');
?>
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>Belajar PHP MySQL</title>

144 | P a g e

http://www.duniailkom.com_________________________________________________________
<style>
h3{
text-align:center; }
table {
border-collapse:collapse;
border-spacing:0;
font-family:Arial, sans-serif;
font-size:16px;
padding-left:300px;
margin:auto; }
table th {
font-weight:bold;
padding:10px;
color:#fff;
background-color:#2A72BA;
border-top:1px black solid;
border-bottom:1px black solid;}
table td {
padding:10px;
border-top:1px black solid;
border-bottom:1px black solid;
text-align:center; }
tr:nth-child(even) {
background-color: #DFEBF8; }
</style>
</head>
<body>
<h3>Penyajian Data MySQL dalam bentuk tabel HTML dengan CSS</h3>
<table>
<tr>
<th>NIM</th>
<th>Nama</th>
<th>Umur</th>
<th>Tempat Lahir</th>
<th>IPK</th>
</tr>
<?php
while ($row=mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>".$row['nim']."</td>";
echo "<td>".$row['nama']."</td>";
echo "<td>".$row['umur']."</td>";
echo "<td>".$row['tempat_lahir']."</td>";
echo "<td>".$row['IPK']."</td>";
echo "</tr>";
}
?>
</table>
</body>
</html>

Kode diatas terasa panjang, terutama karena dalam tutorial PHP MySQL sebelum ini saya tidak
menggunakan HTML dan CSS.
Kode PHP yang saya gunakan dari kode program diatas sama persis dengan yang ada di dalam tutorial
PHP MySQL tentang mysql_fetch_array. Akan tetapi kali ini hasilnya diletakkan di dalam tabel HTML.
Koneksi PHP dengan MySQL dan juga fungsi mysql_query() saya letakkan sebelum kode HTML. Hal ini
umum digunakan untuk memisahkan PHP dengan HTML.
145 | P a g e

http://www.duniailkom.com_________________________________________________________
Kode CSS untuk tabel saya letakkan di bagian <head>. Kode CSS digunakan untuk mengubah border
tabel, warna backgroud, padding, dan ukuran font. Yang cukup menarik adalah selector tr:nthchild(even). Selector CSS3 ini digunakan untuk mendapatkan efek zebra didalam tabel, atau dikenal
dengan stripped table. Fitur ini digunakan agar setiap baris tabel bisa dibaca dengan mudah karena
memiliki warna yang berbeda.
Di dalam perulangan mysql_fetch_array(), hasil dari tiap iterasi ditempatkan di dalam tag <td>,
sehingga langsung menyatu dengan sel tabel.
Anda bisa berkreasi dengan mengubah-ubah kode HTML atau CSS diatas untuk mendapatkan hasil
yang sesuai.

Tutorial kali ini mengakhiri sesi tutorial mengenai mysql extension di duniailkom. Dalam tutorial PHP
MySQL berikutnya, kita akan mulai membahas tentang mysqli extension. Mari kita lihat mengenai
perbedaan mysql dan mysqli extension dalam PHP.

Tutorial PHP MySQL Part 12: Perbedaan mysql dan mysqli


extension PHP
Seperti yang pernah kita bahas dalam tutorial Jenis Koneksi PHP MySQL: PDO, mysqli, dan mysql
extension, penggunaan mysql extension tidak lagi direkomendasikan (deprecated). Dalam tutorial
PHP MySQL kali ini, kita akan membahas perbedaan mysql extension yang lama dengan versi
barunya, yakni mysqli. Extension mysqli juga hadir dengan 2 jenis rasa: procedural dan object
oriented.

Perbedaan Antara mysql extension Dengan mysqli extension


Sepanjang tutorial PHP MySQL Part 4 sampai 11 di duniailkom ini, kita menggunakan extension
mysql dari PHP untuk mengakses MySQL. Fungsi-fungsi yang kita pelajari tersebut (seperti
fungsimysql_connect, mysql_query, dan mysql_fetch_array) memang sudah tidak disarankan lagi,
tetapi saya tetap membahasnya sebagai dasar bagi kita untuk masuk ke extension yang lebih
baru: mysqli danPDO.
Terhitung dari PHP versi 5.5, extension mysql tidak lagi disarankan penggunaannya dan
berstatusdeprecated, yang berarti mungkin akan dihapus pada PHP versi berikutnya. Kita disarankan
untuk mulai beralih menggunakan mysqli atau PDO. Mari kita bahas tentang mysqli terlebih dahulu.
Mysqli merupakan kependekan dari MySQL Improved Extension. Seperti yang terlihat dari namanya,
extension ini merupakan versi perbaikan dan penambahan dari extension mysqlsebelumnya yang
umum digunakan. Extension mysqli dibuat untuk mendukung fitur-fitur terbaru dari MySQL Server
versi 4.1 keatas.
Secara garis besar, tidak ada perbedaan mencolok antara mysql extension dengan mysqli extension.
Nama-nama fungsi didalam mysqli sebagian besar mirip dengan apa yang telah kita pelajari (extension
mysql).
Sebagai contoh, untuk membuat koneksi dengan MySQL Server, di dalam mysql kita menggunakan
fungsi mysql_connect(), sedangkan di dalam mysqli, kita menggunakan mysqli_connect(). Begitu juga
dengan fungsi lain seperti mysql_query() menjadi mysqli_query().

146 | P a g e

http://www.duniailkom.com_________________________________________________________
Selain menambah huruf i di dalam nama fungsi, argumen-argumen yang dibutuhkan juga hampir
mirip. Perbedaannya, jika di dalam extension mysql umumnya kita meletakkan argumen resourcesdi
akhir fungsi, maka di dalam mysqli, argumen ini diteletakkan di awal.
Sebagai contoh, di dalam mysql kita menulis:
mysql_query("SELECT * FROM mahasiswa_ilkom", $link)

Sedangkan di dalam mysqli penulisannya menjadi:


mysqli_query($link, "SELECT * FROM mahasiswa_ilkom")

Namun perbedaan paling mendasar di dalam mysqli adalah: mysqli mendukung cara penulisanobject
oriented programming.

Mengenal 2 jenis Mysqli Style: Procedural dan Object Oriented


Agar proses migrasi dari mysql ke mysqli tidak terlalu menyusahkan, PHP memberikan 2 alternatif
cara penulisan mysqli.
Cara yang pertama adalah menggunakan procedural style. Cara ini mirip dengan extension
mysql, dimana kita menggunakan fungsi-fungsi untuk mengakses database MySQL.
Cara kedua adalah dengan object oriented style. Dengan cara ini, kita menggunakan aturan
penulisan pemrograman objek untuk berkomunikasi dengan MySQL.
Kedua jenis style pemrograman mysqli ini menggunakan nama fungsi dan method yang kurang lebih
sama. Sebagai contoh, di dalam procedural style mysqli, terdapat fungsi mysqli_query(),sedangkan
dalam OOP style mysqli, kita menggunakan method $mysqli->query(). Kita akan membahas lebih
dalam tentang cara penggunaan 2 style ini nantinya.
Di dalam tutorial PHP MySQL kali ini kita telah membahas sekilas mengenai perbedaan extension
mysql dengan extension mysqli yang lebih baru. Sesuai dengan instruksi dari manual MySQL,
sebaiknya kita tidak menggunakan lagi extension mysql.
Dalam tutorial selanjutnya, kita akan mulai membahas cara penggunaan mysqli extension. Berikutnya
dalam tutorial PHP MySQL duniailkom: Cara Menampilkan Data dengan mysqli PHP menggunakan
procedural style.

Tutorial PHP MySQL Part 13: Cara Menampilkan Data dengan


mysqli PHP (Procedural Style)
Dalam tutorial PHP MySQL kali ini kita akan membahas cara menampilkan data MySQL dengan
menggunakan mysqli extension. Karena mysqli memiliki 2 cara penggunaan: procedural danobjectoriented, pada tutorial ini kita akan fokus pada penggunaan procedural style.
Secara garis besar, cara penggunaan mysqli secara procedural (menggunakan fungsi-fungsi) sangat
mirip dengan mysql extension. Karena itu jika anda sudah memahami cara pemakaian mysql
extension (yang telah kita bahas), tidak akan kesulitan untuk beralih ke mysqli.

Cara Membuat Koneksi MySQL Dengan Fungsi mysqli_connect()


147 | P a g e

http://www.duniailkom.com_________________________________________________________
Untuk membuat koneksi antara PHP dengan MySQL Server, kita menggunakan
fungsimysqli_connect(). Fungsi mysqli_connect() ini membutuhkan argumen yang sama dengan
fungsimysql_connect(), yakni: alamat host, nama user, dan password user.
Sebagai contoh, untuk masuk kedalam MySQL di localhost menggunakan user root dan dengan
password qwerty, kita menggunakan kode program sebagai berikut:
<?php
$link = mysqli_connect("localhost", "root", "qwerty");
?>

Sebagai fitur tambahan, fungsi mysqli_connect() memiliki argumen ke-4 yang bersifat opsional. Kita
bisa menambahkan nama database yang ingin digunakan. Misalkan kita ingin sewaktu proses koneksi
dengan MySQL, langsung memilih database universitas, maka contoh penulisannya adalah sebagai
berikut:
<?php
$link = mysqli_connect("localhost", "root",
"qwerty","universitas");
?>

Cara Menutup Koneksi Dengan Fungsi mysqli_close()


Walaupun PHP akan menutup koneksi dengan MySQL pada saat halaman selesai diproses, kita bisa
menutupnya secara manual menggunakan fungsi mysqli_close(). Fungsi ini membutuhkan 1 argumen,
yakni variabel resources hasil pemanggilan fungsi mysqli_connect().
Berikut contoh penggunaan fungsi mysqli_close():
<?php
// buat koneksi dengan MySQL
$link = mysqli_connect("localhost", "root",
"qwerty","universitas");
//.... proses PHP
//.... proses PHP
//.... proses PHP
// tutup koneksi
mysqli_close($link);
?>

Cara Menjalankan Query MySQL Dengan Fungsi mysqli_query()


Cara menjalankan query MySQL dengan mysqli extension juga mirip dengan mysql extension. Di dalam
mysqli, kita menggunakan fungsi mysqli_query(). Namun berbeda dengan fungsimysql_query() yang
meletakkan variabel resources hasil mysql_connect() sebagai argumen kedua dan bersifat opsional, di
dalam fungsi mysqli_query(), variabel ini diletakkan sebagai argumen pertama dan harus ditulis.
Sebagai contoh, dengan menggunakan mysql_extension, kita biasa menulis kode PHP sebagai berikut:
<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
//gunakan database universitas
$result=mysql_query('USE universitas',$link);
//tampilkan tabel mahasiswa_ilkom
$result=mysql_query('SELECT * FROM mahasiswa_ilkom',$link);
?>

Sedangkan dengan menggunakan mysqli extension, berikut adalah perubahan cara penggunaannya:
148 | P a g e

http://www.duniailkom.com_________________________________________________________
<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$link = mysqli_connect("localhost", "root", "", "universitas");
// jalankan query
$result = mysqli_query($link, "SELECT * FROM mahasiswa_ilkom");
?>

Perhatikan bahwa kita menggunakan format: mysqli_query($link, query_MySQL) untuk


menjalankan query MySQL.

Cara Menampilkan Data MySQL Dengan mysqli


Untuk menampilkan hasil query MySQL, mysqli extension memiliki banyak fungsi. Kali ini kita akan
membahas 3 fungsi yang paling sering digunakan: mysqli_fetch_row(), mysqli_fetch_array(), dan
mysqli_fetch_object().
Ketiga fungsi ini hampir sama cara penggunaannya dengan versi mysql extension yang telah kita bahas,
yakni: mysql_fetch_row(), mysql_fetch_array(), dan mysql_fetch_object(). Jika anda perhatikan,
perbedaan namanya hanya dengan menambah huruf i.
Langsung saja kita masuk ke contoh program, untuk memahami cara penggunaan ketiga fungsi ini. Di
dalam contoh-contoh berikut saya menggunakan tabel mahasiswa_ilkom di dalam database
universitas. Tabel ini kita buat sewaktu membahas tentang fungsi mysql_fetch_row.
Pertama, mari kita lihat cara menampilkan data MySQL dengan fungsi mysqli_fetch_row():
<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$link = mysqli_connect("localhost", "root", "", "universitas");
// jalankan query
$result = mysqli_query($link, "SELECT * FROM mahasiswa_ilkom");
// tampilkan query
while ($row=mysqli_fetch_row($result))
{
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";
}
?>

Fungsi mysqli_fetch_row() sama persis cara penggunaanya dengan fungsi mysql_fetch_row(), oleh
karena itu saya tidak akan membahasnya lagi. Tapi jika anda ragu, bisa mengunjungi tutorialnya di
Cara Menampilkan Tabel MySQL dari PHP dengan fungsi mysql_fetch_row.
Berikutnya, kita bahas cara menampilkan data MySQL dengan fungsi mysqli_fetch_array():
<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$link = mysqli_connect("localhost", "root", "", "universitas");
// jalankan query
$result = mysqli_query($link, "SELECT * FROM mahasiswa_ilkom");
// tampilkan query
while ($row=mysqli_fetch_array($result,MYSQLI_ASSOC))
{
echo $row['nim']." ".$row['nama']." ".$row['umur']." ";
echo $row['tempat_lahir']." ".$row['IPK'];
echo "<br />";
}

149 | P a g e

http://www.duniailkom.com_________________________________________________________
?>

Sedikit perbedaan antara fungsi mysqli_fetch_array() dengan fungsi kembarannya


mysql_fetch_array(), kali ini string penentu metoda array berada pada argumen kedua. Argumen
pertama
adalah
variabel
resources
hasil
pemanggilan
fungsi
mysqli_query().
String MYSQLI_ASSOCdigunakan agar key array dapat diakses dengan nama. String lain yang bisa kita
gunakan adalahMYSQL_NUM dan MYSQL_BOTH. Perbedaan ketiganya telah kita bahas lengkap
dalam Tutorial PHP MySQL: Cara Menampilkan Tabel MySQL dari PHP dengan mysql_fetch_array.
Cara ketiga yang akan kita bahas adalah dengan menggunakan fungsi mysqli_fetch_object(). Fungsi
ini sama dengan fungsi mysql_fetch_object(), dimana kita mengakses hasil query sebagai objek.
Berikut adalah contoh kode PHPnya:
<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$link = mysqli_connect("localhost", "root", "", "universitas");
// jalankan query
$result = mysqli_query($link, "SELECT * FROM mahasiswa_ilkom");
// tampilkan query
while ($row=mysqli_fetch_object($result))
{
echo $row->nim." ".$row->nama." ".$row->umur." ";
echo $row->tempat_lahir." ".$row->IPK;
echo "<br />";
}
?>

Jika anda butuh penjelasan mengenai cara penggunaan mysqli_fetch_object(), silahkan


kunjungiTutorial PHP MySQL : Cara Menampilkan Tabel dengan objek (mysql_fetch_object).
Dalam tutorial PHP MySQL kali ini kita telah membahas tentang cara penggunaan mysqli untuk
menampilkan data dari database MySQL.
Seperti yang pernah kita bahas, mysqli memiliki 2 cara penulisan (2 jenis style). Selain dengan cara
procedural seperti dalam tutorial ini, di dalam tutorial selanjutnya kita akan membahas cara
penggunaan mysqli dengan object oriented style.

Tutorial PHP MySQL Part 14: Cara Menampilkan Data dengan


mysqli PHP (Object Style)
Jika dalam tutorial sebelumnya kita mempelajari mysqli dengan menggunakan fungsi-fungsi atau
dikenal dengan procedural style mysqli, dalam tutorial PHP MySQL kali ini kita akan membahas
tentang object style mysqli.

Cara Penulisan Object Style mysqli


Sebagai cara koneksi yang lebih baru daripada mysql extension, mysqli memiliki 2 jenis style,
yakniprocedural style dan object-oriented style. Kecendrungan pemrograman saat ini lebih banyak
menggunakan objek. Untuk hal inilah PHP juga menyediakan mysqli dengan rasa objek.
Pemrograman berbasis objek lebih banyak disukai karena cenderung rapi dan mudah dikembangkan,
terutama jika kita mengerjakan proyek besar yang butuh ribuan baris program. Konsep OOP
seperti inheritance, encapsulation dan polymorfism membuat program menjadi lebih tertata.

150 | P a g e

http://www.duniailkom.com_________________________________________________________

Langsung saja kita lihat bagaimana cara penggunaan objek di dalam mysqli.

Cara Membuat Koneksi dengan MySQL (mysqli constructor)


Untuk membuat koneksi MySQL dengan PHP menggunakan mysqli object style, caranya adalah
dengan menggunakan mysqli constructor. Constructor mysqli adalah sejenis fungsi yang digunakan
untuk membuat object baru dari class mysqli.
Argumen di dalam construktor mysqli ini sama persis dengan argumen fungsi mysqli_connect(), yakni
lokasi komputer, nama user, dan password user.
Berikut adalah cara membuat koneksi mysqli di localhost untuk user root dengan password
qwerty:
<?php
$link = new mysqli("localhost", "root", "qwerty");
?>

Pada kode diatas, saya membuat objek $link dari class mysqli. Di dalam OOP, keyword newdigunakan
untuk membuat objek baru. Dengan objek $link hasil mysqli constructor inilah proses query MySQL
nantinya kita jalankan.
Sama seperti fungsi mysqli_connect(), constructor mysqli juga memiliki argumen tambahan, yakni
nama database yang ingin digunakan. Jika kita ingin langsung mengakses database universitas, maka
kode programnya menjadi:
<?php
$link = new mysqli("localhost", "root", "qwerty", "universitas");
?>

Cara Menutup Koneksi MySQL Dengan Method mysqli::close()


Walaupun PHP akan lansung menutup koneksi ke MySQL jika halaman telah selesai di proses, namun
kita juga bisa menutupnya secara manual menggunakan method close() dari objek mysqli,atau biasa
ditulis sebagai mysqli::close(). Berikut contoh penggunaannya:
<?php
// buat koneksi dengan MySQL
$link = new mysqli("localhost", "root", "qwerty","universitas");

151 | P a g e

http://www.duniailkom.com_________________________________________________________
//.... Proses PHP
//.... Proses PHP
//.... Proses PHP
// tutup koneksi
$link->close();
?>

Cara Menjalankan Query MySQL Dengan Method mysqli::query()


Jika di dalam penulisan procedural kita menggunakan fungsi mysqli_query() untuk menjalankan query
MySQL, maka di dalam objek style, kita mengaksesnya menggunakan methodmysqli::query().
Agar lebih mudah dipahami, langsung saja kita masuk kedalam contoh kode program:
<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$link = new mysqli("localhost", "root", "qwerty", "universitas);
// jalankan query
$result = $link->query("SELECT * FROM mahasiswa_ilkom");
?>

Perhatikan bahwa di dalam proses pemanggilan method query(), kita membutuhkan 1 argumen, yakni
query MySQL yang akan dijalankan.

Cara Menampilkan Data MySQL Dengan mysqli object style


Untuk menampilkan hasil query MySQL, mysqli object memiliki banyak method. Kali ini kita akan
membahas 3 cara yang paling sering digunakan, yakni method fetch_row(), fetch_array() dan
fetch_object(). Cara penggunaan ketiga method ini hampir sama dengan padanan fungsinya di
procedural style, yakni dengan fungsi
mysqli_fetch_row(), mysqli_fetch_array(), dan
mysqli_fetch_object().
Agar lebih jelas, langsung saja kita masuk ke dalam contoh kode program untuk menampilkan seluruh
isi data dari tabel mahasiswa_ilkom.
Pembahasan pertama, yakni cara menampilkan data mysqli dengan method fetch_row(). Berikut
adalah contoh kode programnya:
<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$link = new mysqli("localhost", "root", "qwerty", "universitas");
// jalankan query
$result = $link->query("SELECT * FROM mahasiswa_ilkom");
// tampilkan query
while ($row= $result->fetch_row())
{
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";
}
?>

Dalam contoh diatas, saya mengunakan method fetch_row() dari objek $result yang merupakan objek
hasil pemanggilan method query(). Method fetch_row() ini tidak memerlukan argumen apapun,
sehingga kita memanggilnya dengan cara $result->fetch_row().
Cara kedua untuk menampilkan data mysqli adalah dengan method fetch_array(). Berikut contoh
kode programnya:
152 | P a g e

http://www.duniailkom.com_________________________________________________________
<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$link = new mysqli("localhost", "root", "qwerty", "universitas");
// jalankan query
$result = $link->query("SELECT * FROM mahasiswa_ilkom");
// tampilkan query
while ($row=$result->fetch_array(MYSQLI_ASSOC))
{
echo $row['nim']." ".$row['nama']." ".$row['umur']." ";
echo $row['tempat_lahir']." ".$row['IPK'];
echo "<br />";
}
?>

Sama seperti method fetch_row(), method fetch_array() juga diakses dari objek $result yang
merupakan hasil pemanggilan query.
Method fetch_array() membutuhkan 1 argumen, berupa string yang berisi bagaimana cara array hasil
method akan diakases. String ini bisa dipilih dari salah satu nilai: MYSQLI_NUM,
MYSQLI_ASSOC atau MYSQLI_BOTH. Lebih lengkap tentang perbedaan ketiga nya telah kita bahas
dalam tutorial mengenai fungsi mysql_fetch_array().
Cara ketiga yang akan kita bahas untuk menampilkan data mysqli, adalah dengan
methodfetch_object(). Berikut contoh pengunaanya:
<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$link = new mysqli("localhost", "root", "qwerty", "universitas");
// jalankan query
$result = $link->query("SELECT * FROM mahasiswa_ilkom");
// tampilkan query
while ($row=$result->fetch_object())
{
echo $row->nim." ".$row->nama." ".$row->umur." ";
echo $row->tempat_lahir." ".$row->IPK;
echo "<br />";
}
?>

Cara penggunaan method fetch_object() hampir sama dengan method-method sebelumnya, yakni di
akses dari objek $result hasil menjalankan query MySQL.
Dalam tutorial PHP MySQL kali ini kita telah membahas cara penggunaan mysqli extension yang
berbasis object. Tutorial mysqli ini dan juga tutorial sebelumnya tentang mysqli procedural saya buat
sesingkat mungkin tanpa menggunakan prosedur untuk penanganan kesalahan. Misalnya, bagaimana
mengecek apakah koneksi dengan MySQL sudah terhubung atau belum.
Dalam tutorial berikutnya, akan kita bahas secara mendalam mengenai beberapa fungsi dan method
mysqli yang digunakan untuk penanganan kesalahan.

Tutorial PHP MySQL Part 15: Cara Menampilkan Pesan Kesalahan


(Error) mysqli Extension
Jika dalam 2 tutorial sebelumnya kita membahas tentang cara menampilkan data MySQL
menggunakan procedural style mysqli dan object style mysqli, dalam tutorial PHP MySQL kali ini kita
153 | P a g e

http://www.duniailkom.com_________________________________________________________
akan mempelajari fungsi dan property yang bisa digunakan untuk menampilkan pesan kesalahan
(error) di dalam mysqli.
Pesan kesalahan atau error yang dimaksud dalam tutorial kali ini adalah pesan error dari MySQL yang
bisa ditampilkan apabila terjadi kesalahan koneksi atau kesalahan penulisan query MySQL. Pesan error
dari PHP kadang tidak mencukupi, atau tidak bisa ditampilkan langsung kepada pengguna.
Karena itu, kita perlu sebuah cara untuk mengetahui apa yang terjadi. Misalkan apakah MySQL Server
sudah berjalan, atau apakah kita salah menuliskan password user, database belum ada, salah
penulisan query, dll. Dalam tutorial ini kita akan membahasnya dengan lebih dalam.

Cara Menampilkan Pesan Kesalahan (Error) Procedural Style mysqli


Untuk menampilkan pesan kesalahan dalam procedural style mysqli, kita akan menggunakan fungsifungsi. Beberapa diantaranya adalah fungsi mysqli_connect_errno(), mysqli_connect_ error (),
mysqli_errno(), dan mysqli_error(). Agar mudah dipahami, kita akan langsung membahasnya
menggunakan contoh kode program.
Pertama kali, saya akan mencoba membuat contoh kode program untuk menampilkan kesalahan pada
saat proses koneksi dengan MySQL Server. Berikut adalah kode program PHPnya:
<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$link = mysqli_connect('localhost', 'root', '', 'universitas');
// cek koneksi
if (!$link) {
die('Koneksi Error : '.mysqli_connect_errno()
.' - '.mysqli_connect_error());
}
// koneksi berhasil
echo 'Koneksi Berhasil : '.mysqli_get_host_info($link)."<br />";
// tutup koneksi
mysqli_close($link);
?>

Pada kode program diatas, setelah proses koneksi dengan fungsi mysqli_connect(), saya memeriksa
hasil koneksi dengan kondisi if(!$link). Fungsi mysqli_connect() akan mengembalikan link koneksi
apabila koneksi ke MySQL sukses dilakukan. Tetapi jika koneksi gagal, fungsi ini akan mengembalikan
nilai FALSE. Nilai kembalian inilah yang bisa kita manfaatkan untuk memeriksa apakah koneksi berhasil
atau gagal. Karena kondisi IF baru akan berjalan jika kondisi bernilai TRUE, maka saya menambahkan
tanda ! untuk membalik nilai FALSE menjadi TRUE. Kondisi if(!$link) baru akan dieksekusi ketika
fungsi mysqli_connect() mengalami kegagalan.
Jika kondisi if(!link) menjadi TRUE (terdapat error), maka fungsi die() akan menghentikan proses PHP
yang sedang berjalan. Selanjutnya, saya menampilkan pesan kesalahan menggunakan
fungsimysqli_connect_errno() dan mysqli_connect_ error(). Fungsi mysqli_connect_errno() akan
menampilkan nomor kode error, sedangkan fungsi mysqli_connect_error() akan menampilkan pesan
error.)
Sebagai contoh, jika saya sengaja mengubah username menjadi teman_root (yang memang tidak
ada di MySQL), maka kita bisa melihat error yang terjadi:
154 | P a g e

http://www.duniailkom.com_________________________________________________________
Koneksi Error : 1044
- Access denied for user ''@'localhost' to database 'universitas'.

Atau jika database saya ganti jadi universitas_tetangga:


Koneksi Error : 1049 - Unknown database 'universitas_tetangga'.

Pesan error yang dihasilkan ini selanjutnya bisa dikirim ke user agar bisa memperbaiki kesalahan
tersebut.
Apabila koneksi berhasil, fungsi mysqli_get_host_info() bisa digunakan untuk menampilkan
keterangan mengenai jenis koneksi apa yang saat ini diakses, apakah dari localhost atau alamat IP.
Jika kita menggunakan fungsi mysqli_connect(localhost, root, , universitas), maka hasil
pemanggilan fungsi mysqli_get_host_info() adalah:
Koneksi berhasil : localhost via TCP/IP

Jika saya mengubahnya menjadi mysqli_connect(127.0.0.1, root, , universitas), hasilnya menjadi:


Koneksi berhasil : 127.0.0.1 via TCP/IP

Selanjutnya, bagaimana cara menampilkan pesan error yang terjadi pada saat query di jalankan? Kita
bisa menggunakan fungsi mysqli_errno() dan mysqli_error(). Berikut adalah contoh cara
penggunaannya:
<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$link = mysqli_connect('localhost', 'root', '', 'universitas');
// cek koneksi
if (!$link) {
die('Koneksi Error : '.mysqli_connect_errno().
' - '.mysqli_connect_error());
}
// koneksi berhasil
echo 'Koneksi Berhasil : '.mysqli_get_host_info($link)."<br />";
// jalankan query
$result = mysqli_query($link,"SELECT * FROM mahasiswa_ilkom");
// cek hasil query
if (!$result) {
die('Query Error : '.mysqli_errno($link).
' - '.mysqli_error($link));
}
// tampilkan query
while ($row=mysqli_fetch_row($result)) {
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";
}
// tutup koneksi
mysqli_close($link);
?>

Dalam kode program diatas saya melakukan pengecekan apakah query berjalan sukses atau tidak
dengan kondisi if (!$result). Jika di dalam query terdapat kesalahan, maka fungsi die() akan dijalankan.
Sama seperti fungsi mysqli_connect(), fungsi mysqli_query() juga akan mengembalikan nilai FALSE jika
query gagal dijalankan.
Fungsi mysqli_errno() digunakan untuk menampilkan nomor kode error, dan fungsi
mysqli_error() digunakan untuk menampilkan pesan error yang terjadi.
155 | P a g e

http://www.duniailkom.com_________________________________________________________
Sebagai contoh, jika saya mengganti query menjadi SELECT * FROM mahasiswa_mipa, maka hasilnya
adalah sebagai berikut:
Query Error : 1146 - Table 'universitas.mahasiswa_mipa' doesn't exist

Dimana dalam database universitas yang saya gunakan, memang tidak terdapat table
mahasiswa_mipa. Pesan kesalahan ini sangat berguna terutama jika kita membuat program dimana
user bisa menginput query sendiri.
Dalam 2 contoh kode program diatas, saya menampilkan pesan kesalahan menggunakan mysqli
dengan procedural style. Bagaimana dengan object style mysqli? Mari kita lihat cara penulisannya.

Cara Menampilkan Pesan Kesalahan (Error) Object Style mysqli


Untuk menampilkan pesan kesalahan dengan menggunakan object style mysqli, kita tidak lagi
menggunakan fungsi, tetapi dengan memeriksa property error dari objek mysqli. Property yang
digunakan untuk menampilkan pesan kesalahan ini memiliki nama yang mirip dengan fungsi yang
digunakan pada procedural style mysqli.
Berikut adalah contoh kode program untuk menampilkan kesalahan MySQL menggunakan mysqli
dengan object style:
<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$mysqli = new mysqli("localhost", "root", "","universitas");
// cek koneksi
if ($mysqli->connect_errno) {
die('Koneksi Error: '.$mysqli->connect_errno.
' - '. $mysqli->connect_error);
}
// koneksi berhasil
echo 'Koneksi Berhasil : '.$mysqli->host_info."<br />";
// jalankan query
$result = $mysqli->query("SELECT * FROM mahasiswa_ilkom");
// cek hasil query
if ($mysqli->errno) {
die('Query Error : '.$mysqli->errno.' - '.$mysqli->error);
}
// tampilkan query
while ($row= $result->fetch_row()) {
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";
}
// tutup koneksi
$mysqli->close();
?>

Perhatikan bahwa untuk mengecek apakah suatu koneksi dan proses query berhasil atau tidak, kita
bisa mengujinya dengan mengecek isi dari property $mysqli->connect_errno dan $mysqli->errno.
Kedua property ini tidak akan berisi apa-apa jika tidak ada kesalahan, dan baru akan berisi nilai jika
terdapat error pada koneksi MySQL atau query MySQL.
Dengan kata lain, untuk memeriksa apakah pada saat koneksi MySQL terjadi kesalahan, kita bisa
mengujinya dengan kondisi if ($mysqli->connect_errno). Sedangkan untuk mengecek query, bisa
menggunakan if ($mysqli->errno).
156 | P a g e

http://www.duniailkom.com_________________________________________________________
Anda bisa menguji kode diatas dengan melakukan kesalahan, dan melihat apakah kode program
diatas bisa menangkap error yang terjadi.

Dalam tutorial belajar PHP MySQL kali ini kita telah membahas cara menangani dan menampilkan
pesan kesalahan jika terjadi error pada saat koneksi MySQL maupun pada saat query dijalankan. Pesan
error ini akan berguna jika kita membuat program dimana user bisa menginput query sendiri. Sehingga
jika terjadi salah penulisan query, kita bisa menampilkan pesan yang sesuai.
Dalam tutorial PHP MySQL berikutnya kita akan membahas tentang Pengertian dan Cara Penggunaan
Prepared Statements di dalam mysqli.

Tutorial PHP MySQL Part 16: Pengertian dan Cara Penggunaan


Prepared Statements mysqli
Salah satu fitur baru yang tersedia di dalam mysqli extension yang tidak ada pada mysql
extension adalah dukungan untuk prepared statements MySQL. Dalam tutorial belajar PHP MySQL
kali ini kita akan membahas tentang pengertian prepared statements dan cara penggunaan prepared
statements dengan mysqli.
PHP mendukung fitur prepared statements pada mysqli extension dan PDO. Fitur ini juga umum
digunakan di dalam pemrograman PHP lanjutan seperti framework PHP. Karena hal ini, penting juga
bagi kita untuk memahami cara penggunaannya.

Pengertian Prepared Statements MySQL


Prepared statements adalah sebuah fitur yang disediakan MySQL (dan juga beberapa aplikasi
database lainnya), dimana kita bisa mengirim query (perintah) secara terpisah antara query inti
dengan data dari query. Tujuannya, agar query menjadi lebih aman dan cepat (jika perintah yang
sama akan digunakan beberapa kali).
Sebagai perbandingan, untuk menampilkan data MySQL menggunakan fungsi mysqli_query(), kita
membuat seluruh query dalam 1 string dan langsung mengirimkannya ke MySQL Server, sebagai
berikut:
1
$result=mysqli_query("SELECT * FROM mahasiswa_ilkom WHERE
2
nama='Neil Situmorang'");
Dengan prepared statements, query tersebut akan dipisah antara perintah query: SELECT dengan
data-nya yakni Neil Situmorang.

Proses Pembuatan Prepared Statement MySQL


Proses pembuatan prepared statements membutuhkan 3 langkah: Prepared, Bind, dan Execute.
157 | P a g e

http://www.duniailkom.com_________________________________________________________
Pada proses pertama: prepared, kita mempersiapkan query yang akan dijalankan, tetapi tanpa data.
Bagian dimana data berada digantikan dengan tanda tanya (?), seperti berikut ini:
"SELECT * FROM mahasiswa_ilkom WHERE nama=?"

atau
"INSERT INTO mahasiswa_ilkom VALUES (?, ?, ?, ?, ?)"

Secara teknis, query diatas akan langsung di kirim PHP ke MySQL Server. Di dalam MySQL, perintah
tersebut disimpan untuk sementara menunggu proses berikutnya: bind.
Proses kedua adalah bind. Dalam tahap ini, kita akan mengirimkan data yang telah ditandai dalam
proses prepare. Data disini adalah bagian yang diberi tanda ?. Jika di dalam proses prepare hanya
butuh 1 data, kita mengirimkan 1 data. Tetapi jika kita butuh 5 data, kita mengirimkan 5 data (sesuai
dengan query yang ditulis dalam tahap prepare).
Setelah proses prepare dan bind, berikutnya adalah menjalankan prepared statement (execute).
Kenapa Harus Menggunakan Prepared Statements?
Keuntungan terbesar dari penggunaan prepared statements adalah dalam hal keamanan. Untuk
aplikasi nyata, bagian data dari suatu query biasanya berasal dari user. Seorang user yang jahil bisa
saja menambahkan perintah SQL pada kotak inputan user name. Metoda ini dikenal juga dengan SQL
Injection.
Dengan memisahkan perintah query dengan datanya, kita bisa mencegah penyisipan query.

Cara Penggunaan Prepared Statements mysqli


Pembahasan mengenai prepared statements cukup panjang dan akan saya bahas secara bertahap
dalam 2 tutorial berikutnya. Sebagai gambaran, berikut adalah contoh kode program untuk
menampilkan data mahasiswa dari tabel mahasiswa_ilkom menggunakan prepared statementmysqli
(procedural style). Penjelasan mengenai kode program ini akan kita bahas lengkap pada tutorial
berikutnya:
<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$link = mysqli_connect('localhost', 'root', '', 'universitas');
// cek koneksi
if (!$link) {
die('Koneksi Error : '.mysqli_connect_errno().
' - '.mysqli_connect_error());
}
// buat prepared statements
$stmt = mysqli_prepare($link, "SELECT * FROM mahasiswa_ilkom WHERE
nama=?");
// siapkan "data" query
$nama_mhs="Neil Situmorang";
// hubungkan "data" dengan prepared statements: bind
mysqli_stmt_bind_param($stmt, "s", $nama_mhs);
// jalankan query: execute
mysqli_stmt_execute($stmt);
// cek hasil query
if (!$stmt) {
die('Query Error : '.mysqli_errno($link).

158 | P a g e

http://www.duniailkom.com_________________________________________________________
' - '.mysqli_error($link));
}
// ambil hasil query
$result=mysqli_stmt_get_result($stmt);
// tampilkan hasil query
while ($row= $result->fetch_row()) {
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";
}
// tutup statements
mysqli_stmt_close($stmt);
// tutup koneksi
mysqli_close($link);
?>

Jika kode program diatas dijalankan, hasilnya adalah sebagai berikut:


099145055 Neil Situmorang 22 Medan 1.90

Dalam program diatas, saya menggunakan prepared statements untuk menampilkan


datamahasiswa_ilkom dengan nama = Neil Situmorang. Saya akan membahas kode program diatas
secara detail dalam tutorial berikutnya: Cara Menampilkan Data MySQL Menggunakan Prepared
Statements mysqli.

Tutorial PHP MySQL Part 17: Cara Menampilkan Data dengan


mysqli Prepared Statements
Dalam tutorial belajar PHP MySQL kali ini kita akan membahas tentang penggunaan prepared
statements, yakni cara menampilkan data MySQL menggunakan mysqli prepared statements.

Cara Menampilkan Data MySQL Menggunakan Prepared Statements mysqli


Setelah membahas teori tentang pengertian prepared statements pada tutorial sebelumnya, kita akan
langsung praktek mengenai cara penggunaan prepared statements untuk menampilkan sebuah data
dari database MySQL.
Kali ini saya akan mencoba menampilkan tabel mahasiswa_ilkom dengan prepared statements. Tabel
ini kita buat pada tutorial PHP MySQL: Cara Menampilkan Tabel MySQL dari PHP (mysql_fetch_row).
Seperti yang telah dibahas, untuk membuat prepared statements, kita membutuhkan 3
langkah:prepared, bind, dan excecute.

Langkah pertama: prepared


159 | P a g e

http://www.duniailkom.com_________________________________________________________
Sebagai contoh, saya ingin menampilkan seluruh kolom dari tabel mahasiswa_ilkom dimana nama
mahasiswanya adalah Neil Situmorang. Sesuai dengan fungsinya, di dalam proses prepared ini kita
hanya butuh mempersiapkan query MySQL, tanpa ada data.
Untuk proses prepared, mysqli PHP menyediakan fungsi mysqli_prepare(). Fungsi ini membutuhkan 2
argumen, yakni variabel hasil pemanggilan fungsi mysqli_connect(), dan prepared query yang akan
dijalankan. Berikut adalah contoh penulisannya:
<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$link = mysqli_connect('localhost', 'root', '', 'universitas');
// buat prepared statements
$stmt = mysqli_prepare($link, "SELECT * FROM mahasiswa_ilkom WHERE
nama=?");
?>

Hasil pemanggilan fungsi mysqli_prepare() selanjutnya disimpan kedalam variabel $stmt. Variabel ini
akan kita gunakan di dalam proses bind, execute dan dalam proses menampilkan data. Anda bebas
jika ingin menukar variabel ini dengan nama lain.

Langkah kedua: bind


Pada proses bind, kita akan mengirimkan data kepada MySQL. Data yang akan dikirim adalah untuk
menggantikan tanda ? yang sebelumnya dibuat pada proses prepared. Di dalam mysqli PHP,
proses bind dilakukan menggunakan fungsi mysqli_stmt_bind_param(). Fungsi ini membutuhkan
setidaknya 3 buah argumen, berikut contohnya:
<?php
// siapkan "data" query
$nama_mhs="Neil Situmorang";
// hubungkan "data" dengan prepared statements
mysqli_stmt_bind_param($stmt, "s", $nama_mhs);
?>

Argumen pertama dari fungsi mysqli_stmt_bind_param() adalah variabel hasil pemanggilan fungsi
mysqli_prepare(), dalam contoh kita adalah varabel $stmt.
Argumen kedua adalah string yang menunjukkan jenis tipe data argumen ketiga, yakni data yang akan
diinput kedalam query (kita akan membahas isi argumen kedua ini sesaat lagi).
Argumen ketiga adalah data yang akan menggantikan tanda ? dari query, dalam contoh kita adalah
Neil Situmorang. Tetapi karena fungsi mysqli_stmt_bind_param() membutuhkan data dalam
bentuk variabel, saya harus menyimpannya terlebih dahulu ke dalam variabel $nama_mhs.
Argumen kedua dari fungsi mysqli_stmt_bind_param() membutuhkan pembahasan tersendiri.
Argumen ini berisi data string yang menunjukkan jenis tipe data argumen ketiga. PHP menyediakan 4
jenis tipe data:
i = variabel bertipe integer
d = variabel bertipe double
s = variabel bertipe string
b = variabel bertipe blob (binary)

160 | P a g e

http://www.duniailkom.com_________________________________________________________
Karena di dalam contoh saya mengunakan variabel $nama_mhs yang bertipe string, maka di dalam
argumen kedua ditulis: s. Tetapi apabila saya mengganti variabel ketiga menjadi umur yang bertipe
integer, maka argumen kedua ini menjadi i.

Langkah ketiga: execute


Setelah proses bind selesai, langkah berikutnya adalah menjalankan query dengan menggunakan
fungsi mysqli_stmt_execute(). Fungsi ini membutuhkan 1 buah argumen, yakni variabel hasil
pemanggilan fungsi mysqli_prepare():
<?php
mysqli_stmt_execute($stmt);
?>

Fungsi mysqli_stmt_execute() menginstruksikan kepada MySQL untuk segera menjalankan


perintah prepared statement yang telah dibuat. Sampai disini proses menjalankan perintah query
telah terkirim ke MySQL. Selanjutnya, kita akan menampilkan data hasil query.

Menampilkan data hasil query


Untuk menampilkan hasil query, kita mengambil data MySQL dengan fungsi
mysqli_stmt_get_result(). Fungsi ini membutuhkan 1 argumen berupa variabel hasil
fungsimysqli_prepare(). Fungsi ini juga mengembalikan nilai bertipe resources yang selanjutnya bisa
digunakan untuk menampilkan data.
<?php
// ambil hasil query
$result=mysqli_stmt_get_result($stmt);
?>

Selanjutnya, untuk menampilkan data kita bisa menggunakan cara biasa menggunakan
mysql_fetch_row() atau mysql_fetch_array():
<?php
// tampilkan hasil query
while ($row= $result->fetch_row()) {
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";
}
?>

Langkah terakhir yang bersifat opsional (pilihan) adalah menutup proses prepared statement dengan
fungsi mysqli_stmt_close(). Tetapi sama dengan fungsi mysqli_close(), jika kita tidak menulisnya, PHP
secara otomatis akan menutup koneksi ke MySQL saat halaman selesai di proses.
Dengan menggabungkan seluruh fungsi-fungsi prepared statements yang telah kita bahas, berikut
adalah contoh kode programnya secara lengkap:
<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$link = mysqli_connect('localhost', 'root', '', 'universitas');
// cek koneksi
if (!$link) {
die('Koneksi Error : '.mysqli_connect_errno().
' - '.mysqli_connect_error());
}
// buat prepared statements

161 | P a g e

http://www.duniailkom.com_________________________________________________________
$stmt = mysqli_prepare($link, "SELECT * FROM mahasiswa_ilkom WHERE
nama=?");
// cek query
if (!$stmt) {
die('Query Error : '.mysqli_errno($link).
' - '.mysqli_error($link));
}
// siapkan "data" query
$nama_mhs="Neil Situmorang";
// hubungkan "data" dengan prepared statements
mysqli_stmt_bind_param($stmt, "s", $nama_mhs);
// jalankan query
mysqli_stmt_execute($stmt);
// ambil hasil query
$result=mysqli_stmt_get_result($stmt);
// tampilkan hasil query
while ($row= $result->fetch_row()) {
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";
}
// tutup statements
mysqli_stmt_close($stmt);
// tutup koneksi
mysqli_close($link);
?>

Jika kode program diatas dijalankan, hasilnya adalah sebagai berikut:


099145055 Neil Situmorang 22 Medan 1.90

Selain fungsi-fungsi yang kita bahas pada tutorial kali ini, saya juga menambahkan fungsi untuk
memeriksa kesalahan seperti yang pernah kita bahas pada tutorial cara menampilkan pesan kesalahan
(error) mysqli, yakni fungsi mysqli_errno dan mysqli_error().

Prepared Statement mysqli Object Style


Sebagai alternatif, berikut adalah cara penulisan prepared statement menggunakan object style
mysqli. Method yang digunakan relatif hampir sama dengan procedural style yang kita bahas diatas.
<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$mysqli = new mysqli("localhost", "root", "","universitas");
// cek koneksi
if ($mysqli->connect_errno) {
die('Koneksi gagal: ' .$mysqli->connect_errno.
' - '.$mysqli->connect_error);
}
// buat prepared statements
$stmt = $mysqli->prepare("SELECT * FROM mahasiswa_ilkom WHERE
nama=?");

162 | P a g e

http://www.duniailkom.com_________________________________________________________
// cek query
if (!$stmt) {
die('Query Error : '.$mysqli->errno.
' - '.$mysqli->error);
}
// siapkan "data" query
$nama_mhs="Neil Situmorang";
// hubungkan "data" dengan prepared statements
$stmt->bind_param("s", $nama_mhs);
// jalankan query
$stmt->execute();
// hubungkan hasil query
$result = $stmt->get_result();
// tampilkan query
while ($row= $result->fetch_row()) {
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";
}
// tutup statements
$stmt->close();
// tutup koneksi
$mysqli->close();
?>

Dalam tutorial PHP MySQL kali ini kita telah membahas tentang cara penggunaan prepared statements
MySQL untuk menampilkan data. Pada tutorial berikutnya kita akan bahas cara menggunakan mysqli
prepared statement untuk proses input data kedalam database MySQL.

Tutorial PHP MySQL Part 18: Cara Menginput Data dengan mysqli
Prepared Statements
Jika dalam tutorial PHP MySQL sebelumnya kita membahas tentang cara menampilkan data dengan
mysqli prepared statements, dalam tutorial kali ini kita akan mempelajari cara menginput data
menggunakan mysqli prepared statements.

Cara Menginput Data dengan mysqli Prepared Statements


Perbedaan antara cara menginput data dan menampilkan data menggunakan prepared
statements terletak pada cara penanganan query. Apabila dalam menampilkan data kita
menggunakan perintah SELECT, maka untuk menginput data kita menggunakan query INSERT.
Fitur keamanan yang diberikan oleh prepared statements membuatnya cocok digunakan untuk
perintah yang akan mengubah isi tabel seperti perintah INSERT atau UPDATE. Selain itu,
penggunaan prepared statement untuk proses input data yang berulang juga akan mempercepat
proses eksekusi.
Dalam contoh kasus kita kali ini, saya akan menambahkan 1 buah data tambahan kedalam
tabelmahasiswa_ilkom. Saya juga tidak akan membahas secara mendalam fungsi-fungsi prepared
statement yang digunakan, karena kita telah membahasnya pada tutorial sebelumnya.
163 | P a g e

http://www.duniailkom.com_________________________________________________________

Proses pertama: prepared


Untuk menginput data kedalam tabel mahasiswa_ilkom, kita akan menggunakan
query INSERTVALUES (Jika anda ingin mempelajari cara-cara menginput data kedalam MySQL,
silahkan kunjungitutorial MySQL: Cara menambahkan data kedalam tabel).
Berikut adalah fungsi mysqli_prepare() untuk proses penambahan data:
<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$link = mysqli_connect('localhost', 'root', '', 'universitas');
// buat prepared statements
$stmt = mysqli_prepare($link, "INSERT INTO mahasiswa_ilkom
VALUES (?, ?, ?, ?, ?)");
?>

Perhatikan cara penulisan query INSERT diatas. Karena fungsi prepared statements yang memisahkan
query dengan data, maka di kolom VALUES, kita tidak langsung menuliskan data yang akan
ditambahkan, tetapi menggunakan tanda ? sebanyak 5 kali untuk penanda data yang akan diinput.
Kelima data ini selanjutnya akan ditambahkan pada saat proses bind.

Proses kedua: bind


Proses pengiriman data (bind) dilakukan dengan fungsi mysqli_stmt_bind_param(). Karena query
INSERT kita membutuhkan 5 variabel, maka fungsi mysqli_stmt_bind_param() juga harus
menyertakan kelima variabel ini (untuk mengganti karakter (?, ?, ?, ?, ?)).
Sebelumnya, kita harus menuliskan masing-masing isian ke dalam variabel terpisah, lalu kemudian
baru diinput kedalam fungsi mysqli_stmt_bind_param(). Berikut adalah contoh kode program dimana
saya akan men-bind data ke dalam prepared statement:
<?php
// hubungkan "data" dengan prepared statements
mysqli_stmt_bind_param($stmt, "ssisd",
$nim_mhs, $nama_mhs, $umur_mhs , $tempat_lahir_mhs, $ipk_mhs);
// siapkan "data" query
$nim_mhs="089023020";
$nama_mhs="Naira Alika";
$umur_mhs=20;
$tempat_lahir_mhs="Padang";
$ipk_mhs=3.9;
?>

Dalam contoh diatas, fungsi mysqli_stmt_bind_param() memiliki 7 argumen. Argumen pertama


adalah variabel $stmt hasil fungsi mysqli_prepare(), argumen kedua adalah string yang menunjukkan
5 tipe data. Argumen ke-3 sampai ke-7 adalah variabel yang akan berisi data yang ingin diinput.
Untuk argumen kedua saya menulis ssisd, yang merupakan singkatan dari
string string stringinteger string decimal. String ini akan berpasangan dengan variabel inputan ke-3
sampai ke-7:
$nim_mhs = 089023020 (string).
$nama_mhs = Naira Alika (string).
$umur_mhs = 20 (integer).
$tempat_lahir_mhs = Padang (string).
$ipk_mhs = 3.9 (decimal / float).
164 | P a g e

http://www.duniailkom.com_________________________________________________________
Setelah penulisan fungsi mysqli_stmt_bind_param(), saya kemudian membuat data sample
mahasiswa dengan nama Naira Alika. Perhatikan bahwa isi data ini diinput ke dalam variabel yang
sama dengan yang digunakan pada fungsi mysqli_stmt_bind_param() untuk argumen ke-3 s/d ke-7.
Data-data inilah yang nantinya di-bind dengan query asal, sehingga query kita akan menjadi:
INSERT INTO mahasiswa_ilkom VALUES
("089023020", "Naira Alika", 20, "Padang", 3.9)

Proses ketiga: execute


Setelah query dan data
fungsimysqli_stmt_execute():

selesai

diinput,

kita

tinggal

menjalankan

query

dengan

<?php
// jalankan query: execute
mysqli_stmt_execute($stmt);
?>

Memeriksa Hasil Query


Untuk memeriksa apakah hasil query INSERT yang dijalankan berhasil atau tidak, bisa dilakukan
dengan memeriksa variabel $stmt dan fungsi mysqli_stmt_affected_rows(), seperti contoh berikut:
<?php
// cek hasil query
if (!$stmt) {
die('Query Error : '.mysqli_errno($link).' '.mysqli_error($link));
}
else {
echo "Penambahan ".mysqli_stmt_affected_rows($stmt)." data
berhasil<br />";
}
?>

Kondisi if (!$stmt) akan menjadi TRUE ketika query gagal, sehingga fungsi die() akan menghentikan
proses dan menampilkan error yang terjadi. Tetapi jika query sukses, bagian else yang akan dijalankan.
Fungsi mysqli_stmt_affected_rows() mirip dengan fungsi mysql_ affected_rows() yang pernah kita
bahas, dan akan menampilkan berapa jumlah baris yang diupdate. Karena pada contoh kali ini kita
hanya menambahkan 1 buah data, maka hasilnya adalah: 1.
Agar lebih yakin, saya kemudian akan menampilkan seluruh tabel mahasiswa_ilkom dengan kode
berikut:
<?php
// jalankan query untuk memeriksa hasil inputan
$result = mysqli_query($link, "SELECT * FROM mahasiswa_ilkom");
// tampilkan query
while ($row=mysqli_fetch_row($result)) {
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";
}
?>

Kode diatas sudah sering kita gunakan, sehingga saya tidak akan membahasnya lagi.
Terakhir adalah fungsi opsional untuk memutus koneksi dengan MySQL Server:
<?php

165 | P a g e

http://www.duniailkom.com_________________________________________________________
// tutup statements
mysqli_stmt_close($stmt);
// tutup koneksi
mysqli_close($link);
?>

Dengan menggabungkan seluruh pembahasan kita diatas, berikut adalah contoh kode program PHP
lengkap mengenai cara menginput data MySQL menggunakan mysqli prepared statement:
<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$link = mysqli_connect('localhost', 'root', '', 'universitas');
// buat prepared statements
$stmt = mysqli_prepare($link, "INSERT INTO mahasiswa_ilkom
VALUES (?, ?, ?, ?, ?)");
// hubungkan "data" dengan prepared statements
mysqli_stmt_bind_param($stmt, "ssisd",
$nim_mhs, $nama_mhs, $umur_mhs , $tempat_lahir_mhs, $ipk_mhs);
// siapkan "data" query
$nim_mhs="089023020";
$nama_mhs="Naira Alika";
$umur_mhs=20;
$tempat_lahir_mhs="Padang";
$ipk_mhs=3.9;
// jalankan query
mysqli_stmt_execute($stmt);
// cek hasil query
if (!$stmt) {
die('Query Error : '.mysqli_errno($link).' '.mysqli_error($link));
}
else {
echo "Penambahan ".mysqli_stmt_affected_rows($stmt). " data
berhasil<br />";
}
// jalankan query untuk memeriksa hasil inputan
$result = mysqli_query($link, "SELECT * FROM mahasiswa_ilkom");
// tampilkan query
while ($row=mysqli_fetch_row($result)) {
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";
}
// tutup statements
mysqli_stmt_close($stmt);
// tutup koneksi
mysqli_close($link);
?>

Apabila dijalankan, maka hasil yang didapat adalah sebagai berikut:


Penambahan 1 data berhasil
089023013 Alex Supriyanto 23 Surabaya 2.90
089023020 Naira Alika 20 Padang 3.90

166 | P a g e

http://www.duniailkom.com_________________________________________________________
089045001
099145055
109223041
109245021

Andi Suryo 23 Jakarta 2.70


Neil Situmorang 22 Medan 1.90
Rani Sabrina 21 Padang 3.70
Santi Syanum 21 Malang 3.20

Bisa terlihat bahwa data mahasiswa baru: Naira Alika telah masuk kedalam table mahasiswa_ilkom.

Cara Menginput Multiple Data dengan mysqli Prepared Statements


Masih berkaitan dengan pembahasan kita, saya akan memodifikasi sedikit kode program untuk
menampilkan cara menginput banyak data (multiple data) menggunakan mysqli prepared statement:
<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$link = mysqli_connect('localhost', 'root', '', 'universitas');
// buat prepared statements
$stmt = mysqli_prepare($link, "INSERT INTO mahasiswa_ilkom
VALUES (?, ?, ?, ?, ?)");
// hubungkan "data" dengan prepared statements
mysqli_stmt_bind_param($stmt, "ssisd",
$nim_mhs, $nama_mhs, $umur_mhs , $tempat_lahir_mhs, $ipk_mhs);
// siapkan "data" query 1
$nim_mhs="089023023";
$nama_mhs="Alika Shanum";
$umur_mhs=21;
$tempat_lahir_mhs="Medan";
$ipk_mhs=3.8;
// jalankan query 1
mysqli_stmt_execute($stmt);
// cek hasil query 1
if (!$stmt) {
die('Query Error : '.mysqli_errno($link).' '.mysqli_error($link));
}
else {
echo "Penambahan ".mysqli_stmt_affected_rows($stmt)." data
berhasil<br />";
}
// siapkan "data" query 2
$nim_mhs="089023026";
$nama_mhs="Rina Melita";
$umur_mhs=22;
$tempat_lahir_mhs="Lampung";
$ipk_mhs=3.5;
// jalankan query 2
mysqli_stmt_execute($stmt);
// cek hasil query 2
if (!$stmt) {
die('Query Error : ' .mysqli_errno($link).' '.mysqli_error($link));
}
else {

167 | P a g e

http://www.duniailkom.com_________________________________________________________
echo "Penambahan ".mysqli_stmt_affected_rows($stmt)." data
berhasil<br />";
}
// siapkan "data" query 3
$nim_mhs="089023031";
$nama_mhs="Joni Halim";
$umur_mhs=21;
$tempat_lahir_mhs="Palembang";
$ipk_mhs=3.6;
// jalankan query 3
mysqli_stmt_execute($stmt);
// cek hasil query 3
if (!$stmt) {
die('Query Error : '.mysqli_errno($link).' '.mysqli_error($link));
}
else {
echo "Penambahan ".mysqli_stmt_affected_rows($stmt)." data
berhasil<br />";
}
// jalankan query untuk memeriksa hasil inputan
$result = mysqli_query($link, "SELECT * FROM mahasiswa_ilkom");
// tampilkan query
while ($row=mysqli_fetch_row($result)) {
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";
}
// tutup statements
mysqli_stmt_close($stmt);
// tutup koneksi
mysqli_close($link);
?>

Kode diatas sedikit panjang, tetapi jika anda sudah memahami konsep prepared statement, fungsifungsi yang ada bisa dipahami dengan mudah.
Perhatikan bahwa ketika kita menginput banyak data, kita tidak perlu lagi mengirimkan query ke
MySQL Server, tetapi cukup dengan mengubah variabel data dan menjalankan
fungsimysqli_stmt_execute(). Untuk situasi inilah prepared statement menjadi lebih efisien dari pada
metoda mysqli biasa.
Jika anda menjalankan kode program diatas, berikut adalah hasil yang didapat:
Penambahan 1 data berhasil
Penambahan 1 data berhasil
Penambahan 1 data berhasil
089023013 Alex Supriyanto 23 Surabaya 2.90
089023020 Naira Alika 20 Padang 3.90
089023023 Alika Shanum 21 Medan 3.80
089023026 Rina Melita 22 Lampung 3.50
089023031 Joni Halim 21 Palembang 3.60
089045001 Andi Suryo 23 Jakarta 2.70
099145055 Neil Situmorang 22 Medan 1.90
109223041 Rani Sabrina 21 Padang 3.70
109245021 Santi Syanum 21 Malang 3.20

168 | P a g e

http://www.duniailkom.com_________________________________________________________

Cara Menginput Data dengan mysqli Prepared Statements (object style)


Dalam pembahasan diatas, saya menggunakan procedural style mysqli, kali ini kita akan melihat
modifikasi kode programnya jika menggunakan object style mysqli:
<?php
// buat koneksi dengan MySQL, gunakan database: universitas
$mysqli = new mysqli("localhost", "root", "","universitas");
// cek koneksi
if ($mysqli->connect_errno) {
die('Koneksi gagal: ' .$mysqli->connect_errno.
' - '.$mysqli->connect_error);
}
// buat prepared statements
$stmt = $mysqli->prepare("INSERT INTO mahasiswa_ilkom
VALUES (?, ?, ?, ?, ?)");
// hubungkan "data" dengan prepared statements
$stmt->bind_param("ssisd",
$nim_mhs, $nama_mhs, $umur_mhs , $tempat_lahir_mhs, $ipk_mhs);
// siapkan "data" query
$nim_mhs="089023020";
$nama_mhs="Naira Alika";
$umur_mhs=20;
$tempat_lahir_mhs="Padang";
$ipk_mhs=3.9;
// jalankan query
$stmt->execute();
// cek query
if (!$stmt) {
die('Query Error : '.$mysqli->errno.
' - '.$mysqli->error);
}
else {
echo "Penambahan ".$stmt->affected_rows. " data berhasil<br />";
}
// jalankan query untuk memeriksa hasil inputan
$result = $mysqli->query("SELECT * FROM mahasiswa_ilkom");
// tampilkan query
while ($row= $result->fetch_row()) {
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";
}
// tutup statements
$stmt->close();
// tutup koneksi
$mysqli->close();
?>

169 | P a g e

http://www.duniailkom.com_________________________________________________________
Dalam tutorial belajar PHP MySQL kali ini kita telah mempelajari cara menggunakan mysqli prepared
statement untuk menginput data kedalam database. Tutorial kali ini menutup sesi pembahasan
tentang mysqli. Dalam tutorial berikutnya kita akan berkenalan dengan extension ketiga PHP-MySQL,
yakni PDO: PHP Data Object.

Tutorial PHP MySQL Part 19: Pengertian PDO dan Cara


Mengaktifkan PDO (PHP Data Objects)
Apabila anda mengikuti seluruh tutorial belajar PHP MySQL di duniailkom, hingga saat ini kita telah
mempelajari cara menggunakan mysql extension dan mysqli extension. Selain kedua metode ini,
terdapat 1 lagi cara untuk menghubungkan antara PHP dengan MySQL, yakni menggunakan PDO
extension. Dalam tutorial kali ini (dan beberapa tutorial berikutnya) kita akan membahas lebih dalam
tentang PDO.

Pengertian PDO (PHP Data Objects)


PDO (PHP Data Objects) adalah interface universal yang disediakan PHP untuk berkomunikasi
dengan database server. Maksud istilah interface universal disini adalah bahwa PDO tidak terikat
dengan aplikasi database tertentu. Apabila saat ini kita menggunakan database MySQL dan
dikemudian hari ingin bermigrasi menggunakan PostgreSQL, kita hanya tinggal mengganti cara
pemanggilan awal PDO dan seluruh kode program yang ada bisa langsung digunakan untuk database
baru.
Kondisi ini berbeda jika menggunakan mysql extension atau mysqli extension. Kedua extension ini
hanya bisa bekerja dengan database MySQL. Karena alasan inilah banyak sebaiknya kita mulai beralih
menggunakan PDO dibandingkan mysqli.
Secara teknis, apabila menggunakan mysql atau mysqli extension, PHP langsung berhubungan dengan
MySQL Server, tetapi jika menggunakan PDO, ia tidak berhubungan langsung dengan database, tetapi
hanya sebagai interface. Konsep PDO ini dapat digambarkan sebagai berikut:
PHP PDO > Database Driver > Database Server
PDO bekerja dengan metode yang disebut data-access abstraction layer. Artinya, apapun jenis
database server yang digunakan, kode PHP yang ditulis akan tetap sama. PDO
menyediakanabstraction layer untuk berkomunikasi dengan database server.
Untuk menggunakan PDO, kita harus mengaksesnya menggunakan object. PDO tidak menyediakan
cara penulisan procedural style seperti mysqli atau mysql extension. Karena itu, jika anda kurang
paham tentang istilah pemrograman object seperti class, method, dan property, silahkan
mempelajarinya pada Tutorial Pemrograman Object PHP untuk pemula yang telah tersedia di
duniailkom.

Jenis Database Server yang didukung PDO


Hingga saat penulisan tutorial ini (PHP versi 5.6) PDO mendukung setidaknya 12 jenis
Interface/Database Server:

CUBRID
170 | P a g e

http://www.duniailkom.com_________________________________________________________

MS SQL Server
Firebird
IBM
Informix
MySQL
MS SQL Server
Oracle
ODBC and DB2
PostgreSQL
SQLite
4D

List ini dapat anda lihat dari http://php.net/manual/en/pdo.drivers.php.


Dapat dilihat bahwa PDO mendukung banyak aplikasi database populer seperti: Oracle, Microsoft SQL
Server, dan PostgreSQL. Dengan membuat kode PHP menggunakan PDO, secara tidak langsung kita
juga membuka kemungkinan untuk menggunakan database server selain MySQL, sehingga menjadi
lebih fleksibel.

Cara Mengaktifkan PDO Extension


Walaupun PDO Extension telah aktif secara default pada PHP versi 5.1 keatas, tetapi tidak semua
database driver bisa digunakan. Dengan kata lain, untuk alasan performa, PHP me-nonaktifkan
beberapa driver database seperti Oracle atau PostgreSQL di dalam PDO.
Untuk melihat driver database apa saja yang telah aktif dan bisa langsung digunakan, bisa
menggunakan fungsi (lebih tepatnya: static method) PDO::getAvailableDrivers():
<?php
print_r(PDO::getAvailableDrivers());
?>

Ketika saya menjalankan perintah tersebut pada PHP 5.6 bawaan XAMPP, berikut adalah hasil yang
didapat:
Array ( [0] => mysql [1] => sqlite )

Dari tampilan diatas, dapat dilihat bahwa driver PDO bawaan PHP yang aktif (dan yang bisa digunakan)
hanyalah MySQL dan SQLite. Jadi bagaimana cara mengaktifkan driver untuk database lainnya?
Caranya adalah mengubah setingan php.ini.
File php.ini adalah file konfigurasi yang digunakan PHP. Saya telah membahas sekilas tentang cara
menemukan dan mengakses file php.ini dalam tutorial Cara Mengubah File Konfigurasi PHP (php.ini).
Karena saya menggunakan PHP yang diinstall dari XAMPP di drive D, lokasinya
adalah:D:\xampp\php\php.ini.
Silahkan buka file php.ini dengan aplikasi text editor, kemudian search kata pdo. Dalam versi PHP
yang saya gunakan, hasil pencarian pdo akan tampil pada baris ke-1010, seperti gambar dibawah:

171 | P a g e

http://www.duniailkom.com_________________________________________________________

Pada baris inilah kita mengaktifkan driver database PDO. Perhatikan library yang diawali dengan
php_pdo, inilah driver-driver database PDO yang tersedia di dalam PHP. Dapat dilihat driver yang
telah aktif hanya php_pdo_mysql.dll dan php_pdo_sqlite.dll.
Untuk mengaktifkannya, silahkan hapus tanda titik koma (;) dari awal baris nama driver yang ingin
digunakan. Sebagai contoh, saya akan mengaktifkan extension=php_pdo_pgsql.dll yang merupakan
driver dari database PostgreSQL:

Selanjutnya, save file php.ini, kemudian restart web server Apache (matikan dan hidupkan kembali
melalui XAMPP Control Panel).
Untuk memastikan apakah driver telah aktif atau belum, kita kembali menjalankan method
PDO::getAvailableDrivers(), dan berikut adalah hasil yang didapat:
Array ( [0] => mysql [1] => pgsql [2] => sqlite )

Seperti yang terlihat, driver PostgreSQL untuk PDO telah aktif dan bisa langung digunakan.

172 | P a g e

http://www.duniailkom.com_________________________________________________________

Dalam tutorial PHP MySQL kali ini kita telah membahas tentang pengertian PDO dan cara
mengaktifkan driver database agar bisa diakses menggunakan PDO. Pada tutorial selanjutnya, kita
akan mulai masuk kedalam kode program yang digunakan untuk menghubungkan PHP dengan
database MySQL menggunakan PDO dalam tutorial Cara Membuat Koneksi PHP MySQL Menggunakan
PDO.
Tutorial PHP MySQL Part 20: Cara Membuat Koneksi PHP MySQL dengan PDO
Setelah membahas tentang pengertian PDO dan cara mengaktifkan driver PDO di dalam PHP, pada
tutorial PHP MySQL kali ini kita akan membahas cara membuat koneksi PHP MySQL dengan PDO (PHP
Data Object).

Membuat koneksi PHP MySQL dengan PDO constructor


Karena PDO adalah fungsi/fitur PHP yang ditulis menggunakan objek, maka untuk membuat koneksi
antara PHP dengan MySQL, kita menggunakan PDO constructor, yakni dengan membuat objek baru
dari class PDO (menggunakan keyword: new).
Berikut adalah struktur dasar cara penulisan PDO constructor untuk database MySQL:
$dbh = new PDO('mysql:host=lokasi_db;dbname=nama_database',
"nama_user", "password_user");

Variabel $dbh adalah variabel yang akan menjadi object PDO. Object ini biasa disebut
sebagaiDatabase Handler. Object inilah yang nantinya akan kita gunakan untuk menjalankan
perintah-perintah PDO. Nama variabel boleh bebas, dan tidak harus $dbh.
Argumen dari constructor PDO terdiri dari 3 bagian, bagian pertama berisi nama database
server(misalnya:mysql) kemudian diikuti dengan alamat server dan nama database, semuanya di
dalam 1 string. Untuk argumen kedua diisi dengan nama user, dan argumen ketiga berisi password
user.
Sebagai contoh, untuk masuk ke dalam MySQL server di komputer localhost, dengan
user root,password: 12345, nama database: universitas, kode PDO yang digunakan adalah sebagai
berikut:
<?php

173 | P a g e

http://www.duniailkom.com_________________________________________________________
$dbh = new PDO('mysql:host=localhost;dbname=universitas', "root",
"12345");
?>

Setelah membuat koneksi PDO, untuk menghapus koneksi kita tinggal memberikan nilai null kepada
variabel Database Handler sebagai berikut:
<?php
$dbh = null;
?>

Sama seperti mysqli, proses penutupan koneksi ini bersifat opsional, dan PHP secara otomatis akan
menghapus koneksi pada saat halaman PHP selesai dijalankan.

Cara Menampilkan Pesan Kesalahan (error) pada PDO


Karena PDO menggunakan object, penanganan kesalahan akan lebih baik jika menggunakan blok
TRYCATCH, atau dikenal dengan exceptions.
Untuk menampilkan pesan kesalahan dengan exceptions pada PDO, terdapat 3 pilihan metode. Ketiga
metode ini menggunakan method PDO::setAttribute(PDO::ATTR_ERRMODE):
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT );
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
PDO::ERRMODE_SILENT adalah pilihan default. Jika kita tidak mengubah setingan error, pilihan inilah
yang
digunakan.
Untuk
mengecek
error,
kita
bisa
menggunakan
method PDO::errorCode()dan PDO::errorInfo().
PDO::ERRMODE_WARNING digunakan untuk menampilkan error berupa warning PHP, kemudian PHP
akan melanjutkan proses eksekusi program. Pilihan ini cocok untuk proses debugging.
PDO::ERRMODE_EXCEPTION digunakan untuk menampilkan error dengan exceptions. Pilihan inilah
yang sering digunakan untuk menampilkan error dengan TRYCATCH.
Dengan menggunakan penanganan kesalahan (exceptions), berikut adalah modifikasi kode PHP untuk
koneksi PDO dengan MySQL:
<?php
try {
// buat koneksi dengan database
$dbh = new PDO('mysql:host=localhost;dbname=universitas', "root",
"");

174 | P a g e

http://www.duniailkom.com_________________________________________________________

// set error mode


$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
// hapus koneksi
$dbh = null;
}
catch (PDOException $e) {
// tampilkan pesan kesalahan jika koneksi gagal
print "Koneksi atau query bermasalah: " . $e->getMessage() .
"<br/>";
die();
}
?>

Sebagai contoh, jika saya mengganti nama user menjadi user_tetangga yang memang tidak ada di
dalam database, berikut tampilan error yang terjadi:
Koneksi atau query bermasalah: SQLSTATE[HY000] [1044]
Access denied for user ''@'localhost' to database 'universitas'

Didalam block TRYCATCH inilah nantinya kita akan menjalankan query-query MySQL seperti
menampilkan data, maupun menginput data baru ke dalam tabel MySQL. Untuk cara menampilkan
data tabel MySQL menggunakan PDO, akan kita bahas dalam tutorial berikutnya: Cara Menampilkan
data MySQL menggunakan PDO (PHP Data Object).

Tutorial PHP MySQL Part 21: Cara Menampilkan data MySQL


menggunakan PDO PHP
Setelah mempelajari cara membuat koneksi database MySQL dengan PDO, pada tutorial belajar PHP
MySQL kali ini kita akan membahas cara menampilkan data MySQL menggunakan PDO (PHP Data
Object).

Cara Menampilkan Data MySQL dengan PDO


Walaupun terkesan rumit, menjalankan query dan menampilkan hasilnya menggunakan PDO PHP
tidaklah sulit. Bahkan sangat mirip dengan mysqli. PHP juga menyediakan beragam cara untuk
menampilkan hasil query MySQL dengan PDO.
Sama seperti mysql extension dan mysqli extension, untuk menjalankan dan menampilkan data dari
MySQL dengan PDO, kita membutuhkan 3 langkah: buat koneksi, jalankan query, dantampilkan hasil.
Agar lebih mudah dipahami, berikut adalah contoh kode program untuk menampilkan seluruh
tabelmahasiswa_ilkom dengan menggunakan PDO:
<?php
try {
// buat koneksi dengan database
$dbh = new PDO('mysql:host=localhost;dbname=universitas', "root",
"");
// set error mode
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
// jalankan query
$result = $dbh->query('SELECT * FROM mahasiswa_ilkom');
// tampilkan data
while($row = $result->fetch()) {

175 | P a g e

http://www.duniailkom.com_________________________________________________________
echo "$row[0] $row[1] $row[2] $row[3] $row[4]";
echo "<br />";
}
// hapus koneksi
$dbh = null;
}
catch (PDOException $e) {
// tampilkan pesan kesalahan jika koneksi gagal
print "Koneksi atau query bermasalah: " . $e->getMessage() .
"<br/>";
die();
}
?>

Dalam contoh diatas, saya menjalankan PDO di dalam block TRYCATCH agar bisa menampilkan
pesan kesalahan (error). Selanjutnya, saya membuat koneksi dengan MySQL Server dan menyimpan
hasil koneksi ke dalam variabel $dbh. Kita telah membahas tentang hal ini dalam tutorial sebelumnya.
Kode program $dbh->setAttribute digunakan untuk men-set kode error yang dihasilkan agar bisa
ditangkap oleh block CATCH.
Untuk menjalankan query dengan PDO, kita bisa menggunakan method $dbh->query(). Method ini
membutuhkan 1 argumen bertipe string, yakni query yang akan dijalankan. Dalam contoh diatas, saya
menggunakan query SELECT * FROM mahasiswa_ilkom untuk menampilkan seluruh tabel
mahasiswa_ilkom.
Method $dbh->query() akan mengembalikan nilai berupa objek baru yang digunakan untuk proses
berikutnya. Object ini saya tampung ke dalam variabel $result.
Kemudian, untuk menampilkan hasil query saya menggunakan method $result->fetch(). Method ini
akan mengembalikan nilai berupa array yang bisa ditampilkan dengan perulangan while seperti biasa.
Apabila anda menjalankan perintah tersebut, isi tabel mahasiswa_ilkom akan ditampilkan di web
browser:
089023013
089023020
089023023
089023026
089023031

Alex Supriyanto 23 Surabaya 2.90


Naira Alika 20 Padang 3.90
Alika Shanum 21 Medan 3.80
Rina Melita 22 Lampung 3.50
Joni Halim 21 Palembang 3.60

Mengubah Cara Menampilkan Data PDO


Jika anda perhatikan, dalam contoh diatas kita mengakses hasil query menggunakan array dengan
penomoran index. Selain dengan index array, PDO menyediakan berbagai cara untuk menampilkan
data sesuai kebutuhan.
Untuk mengubah cara menampilkan data PDO, kita tinggal menambahkan 1 argumen ke dalam
method $result->fetch(). Misalkan untuk menampilkan hasil query menggunakan nama kolom sebagai
index array, kita bisa menggunakan PDO::FETCH_ASSOC sebagai berikut:
<?php
// kode program untuk koneksi dan menjalankan query
// ...
// ...
// tampilkan data
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
echo $row['nim']." ".$row['nama']." ".$row['umur']." ";
echo $row['tempat_lahir']." ".$row['IPK'];
echo "<br />";

176 | P a g e

http://www.duniailkom.com_________________________________________________________
}
?>

Dan jika ingin menampilkan dengan pengaksesan objek, bisa menggunakan PDO::FETCH_OBJ:
<?php
// kode program untuk koneksi dan menjalankan query
// ...
// ...
// tampilkan data
while($row = $result->fetch(PDO::FETCH_OBJ)) {
echo $row->nim." ".$row->nama." ".$row->umur." ";
echo $row->tempat_lahir." ".$row->IPK;
echo "<br />";
}
?>

Selain dengan settingan PDO::FETCH_ASSOC dan PDO::FETCH_OBJ, PDO PHP juga menyediakan
beberapa pilihan lain:
PDO::FETCH_BOTH: mengembalikan nilai berupa array yang bisa di tampilkan menggunakan
index angka maupun index nama kolom. Ini adalah pilihan default jika method $result>fetch() ditulis tanpa argumen.
PDO::FETCH_NUM: mengembalikan nilai berupa array yang bisa di tampilkan dengan index
angka.
PDO::FETCH_CLASS: mengembalikan nilai ke dalam class yang telah disiapkan.
PDO::FETCH_LAZY: mengkombinasikan PDO::FETCH_BOTH dan PDO::FETCH_OBJ, sehingga
bisa dipanggil dengan array maupun objek.
Dalam tutorial belajar PHP MySQL kali ini, kita telah membahas tentang cara menampilkan data query
MySQL menggunakan PDO. Dalam tutorial berikutnya kita akan membahas cara menginput data ke
MySQL menggunakan PDO PHP.

Tutorial PHP MySQL Part 22: Cara Menginput Data MySQL dengan
PDO (PHP Data Object)
Setelah membahas tentang cara menampilkan hasil MySQL dengan PDO, berikutnya dalam tutorial
PHP MySQL kali ini kita akan membahas tentang cara menginput data MySQL menggunakan PDO.

Cara Menginput data MySQL dengan PDO


Secara garis besar, proses menginput data MySQL dengan PDO tidak jauh berbeda dengan cara
menampilkan data dengan PDO yang telah kita bahas pada tutorial sebelumnya.
PHP menyediakan banyak cara untuk menginputkan data kedalam MySQL menggunakan PDO
extension. Pada tutorial ini kita akan membahas 2 diantaranya, yakni menggunakan method PDO>query() dan PDO->exec().

Menginput data MySQL dengan PDO->query()


Untuk menginput data MySQL dengan method PDO->query(), kita tinggal menambahkan query
INSERT atau UPDATE kedalam method ini.
Sebagai contoh, saya ingin menambahkan 1 data baru ke dalam tabel mahasiswa_ilkom. Berikut
adalah contoh kode programnya:
177 | P a g e

http://www.duniailkom.com_________________________________________________________
<?php
try {
// buat koneksi dengan database
$dbh = new PDO('mysql:host=localhost;dbname=universitas', "root",
"");
// set error mode
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query= 'INSERT INTO mahasiswa_ilkom VALUES
("099023022", "Ayla Ramadhani", 20, "Aceh", 3.1)';
// jalankan query
$result = $dbh->query($query);
// tampilkan hasil proses query
echo $result->rowCount()." data berhasil ditambahkan";
// hapus koneksi
$dbh = null;
} catch (PDOException $e) {
// tampilkan pesan kesalahan jika koneksi gagal
print "koneksi/query bermasalah: " . $e->getMessage() . "<br/>";
die();
}
?>

Sebagian besar function dan method diatas sudah kita pelajari dalam beberapa tutorial sebelum ini.
Setelah proses koneksi dan men-set error display, saya membuat sebuah string untuk menampung
query INSERT, yakni di dalam variabel $query. Kemudian query dijalankan dengan method $dbh>query($query).
Setelah query di jalankan, kita bisa mengetahui berapa baris tabel MySQL yang ditambahkan
menggunakan method $result->rowCount().
Apabila anda menjalankan perintah diatas, hasil yang ditampilkan adalah:
1 data berhasil ditambahkan

Sebagai latihan, silahkan anda tambahkan kode program diatas untuk menampilkan data
tabelmahasiswa_ilkom setelah proses input data.
Menginput data MySQL dengan PDO->exec()
Selain menggunakan method PDO->query(), kita juga bisa menggunakan method PDO->exec()untuk
menjalankan query MySQL. Cara penulisan method PDO->exec() juga sangat mirip dengan
method PDO->query().
Mari kita lihat bagaimana cara menambahkan 1 data ke dalam tabel mahasiswa_ilkommenggunakan
method PDO->exec():
<?php
try {
// buat koneksi dengan database
$dbh = new PDO('mysql:host=localhost;dbname=universitas', "root",
"");
// set error mode
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query= 'INSERT INTO mahasiswa_ilkom VALUES
("109013027", "Siska Rosiana", 19, "Bengkulu", 2.9)';

178 | P a g e

http://www.duniailkom.com_________________________________________________________

// jalankan query
$result = $dbh->exec($query);
// tampilkan hasil proses query
echo $result." data berhasil ditambahkan";
// hapus koneksi
$dbh = null;
} catch (PDOException $e) {
// tampilkan pesan kesalahan jika koneksi gagal
print "koneksi/query bermasalah: " . $e->getMessage() . "<br/>";
die();
}
?>

Dari kode diatas, method $dbh->exec($query) akan menjalankan query yang disimpan dari
variabel $query. Untuk menampilkan jumlah data yang ditambahkan, kita bisa langsung menggunakan
variabel $result hasil method $dbh->exec($query).
Jika anda menjalankan kode diatas, maka hasil yang didapat adalah sebagai berikut:
1 data berhasil ditambahkan

Setelah mempelajari cara menampilkan dan menginput data menggunakan PDO PHP, dalam tutorial
berikutnya kita akan membahas fitur PDO yang lebih advanced, yakni Cara Menggunakan Prepared
Statement dengan PDO PHP.

Tutorial PHP MySQL Part 23: Cara Menggunakan Prepared


Statements dengan PDO PHP
Dalam 2 tutorial PDO PHP sebelumnya, kita telah membahas cara menampilkan dan menginput data
MySQL dengan cara normal. Pada tutorial belajar PHP MySQL kali ini kita akan membahas cara
menjalankan query MySQL dengan metoda yang lebih advanced menggunakan prepared statements
dengan PDO.

Cara Menginput Data MySQL dengan Prepared Statement PDO


Pembahasan mengenai apa itu prepared statement telah saya bahas dengan lengkap dalamTutorial
PHP MySQL: Pengertian dan Cara Penggunaan Prepared Statements mysqli. Kali ini kita akan lihat
bagaimana cara menggunakannya di dalam extension PDO.
Langsung saja kita masuk kedalam contoh program. Kali ini saya ingin menambahkan 1 data kedalam
tabel mahasiswa_ilkom menggunakan prepared statement dengan PDO:
<?php
try {
// buat koneksi dengan database
$dbh = new PDO('mysql:host=localhost;dbname=universitas', "root",
"");
// set error mode
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// siapkan query (prepare)
$stmt = $dbh->prepare('INSERT INTO mahasiswa_ilkom
VALUES (?, ?, ?, ?, ?)');

179 | P a g e

http://www.duniailkom.com_________________________________________________________

// hubungkan data dengan variabel (bind)


$stmt->bindParam(1, $nim_mhs);
$stmt->bindParam(2, $nama_mhs);
$stmt->bindParam(3, $umur_mhs);
$stmt->bindParam(4, $tempat_lahir_mhs);
$stmt->bindParam(5, $ipk_mhs);
// siapkan "data" query
$nim_mhs="109023031";
$nama_mhs="Jerry Kurniawan";
$umur_mhs=23;
$tempat_lahir_mhs="Malang";
$ipk_mhs=3.1;
// jalankan query (execute)
$stmt->execute();
// tampilkan hasil proses query
echo $stmt->rowCount()." data berhasil ditambahkan";
// hapus koneksi
$dbh = null;
} catch (PDOException $e) {
// tampilkan pesan kesalahan jika koneksi gagal
print "koneksi/query bermasalah: " . $e->getMessage() . "<br/>";
die();
}
?>

Seperti yang pernah kita bahas pada mysqli extension, untuk menjalankan prepared statement, kita
membutuhkan 3 langkah: prepare, bind dan execute.
Proses prepare dijalankan menggunakan method $dbh->prepare(). Method ini membutuhkan 1
argumen berupa perintah query yang akan dijalankan. Hasil dari method kemudian disimpan kedalam
variabel $stmt. Variabel inilah yang akan kita gunakan selama menjalankan proses prepared
statement.
Proses bind dilakukan menggunakan method $stmt->bindParam(). Method ini membutuhkan 2
argumen. Argumen pertama adalah angka urutan dari tempat data yang ditulis pada prosesprepare.
Karena pada proses prepare saya menuliskan: INSERT INTO mahasiswa_ilkom VALUES (?, ?, ?, ?, ?),
maka setiap tanda ? harus di bind. Urutan tanda ? inilah yang digunakan dalam argumen pertama
method $stmt->bindParam().
Untuk argumen kedua method $stmt->bindParam() adalah variabel penampung yang nantinya akan
diisi data. Selanjutnya setiap variable yang di defenisikan akan saya input nilai yang sesuai.
Setelah seluruh data diinput kedalam variabel, kita tinggal menjalankan method $stmt>execute()untuk menjalankan query prepared statement.
Jika anda menjalankan kode program diatas, hasilnya adalah sebagai berikut:
1 data berhasil ditambahkan

Agar lebih yakin, anda bisa menambahkan kode program diatas untuk menampilkan seluruh isi
tabel mahasiswa_ilkom.
Selain menggunakan tanda ? untuk menandakan bagian dari data, PDO PHP juga menyediakan cara
lain, yakni dengan menuliskan nama untuk data atau dikenal dengan named parameters prepared
statements.
Berikut adalah revisi contoh program menggunakan named parameters prepared statemant:
180 | P a g e

http://www.duniailkom.com_________________________________________________________
<?php
try {
// buat koneksi dengan database
$dbh = new PDO('mysql:host=localhost;dbname=universitas', "root",
"");
// set error mode
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// siapkan query (prepare)
$stmt = $dbh->prepare('INSERT INTO mahasiswa_ilkom VALUES
(:nim_mhs, :nama_mhs, :umur_mhs, :tempat_lahir_mhs, :ipk_mhs)');
// hubungkan data dengan variabel (bind)
$stmt->bindParam(':nim_mhs', $nim_mhs);
$stmt->bindParam(':nama_mhs', $nama_mhs);
$stmt->bindParam(':umur_mhs', $umur_mhs);
$stmt->bindParam(':tempat_lahir_mhs', $tempat_lahir_mhs);
$stmt->bindParam(':ipk_mhs', $ipk_mhs);
// siapkan "data" query
$nim_mhs="109023031";
$nama_mhs="Jerry Kurniawan";
$umur_mhs=23;
$tempat_lahir_mhs="Malang";
$ipk_mhs=3.1;
// jalankan query (execute)
$stmt->execute();
// tampilkan hasil proses query
echo $stmt->rowCount()." data berhasil ditambahkan";
// hapus koneksi
$dbh = null;
} catch (PDOException $e) {
// tampilkan pesan kesalahan jika koneksi gagal
print "koneksi/query bermasalah: " . $e->getMessage() . "<br/>";
die();
}
?>

Perbedaan dari kode program sebelumnya adalah pada cara penulisan query dan argumen method
bindParam(). Kali ini kita menggunakan named variable (diawali dengan tanda :), seperti:nim_mhs,
:nama_mhs, atau :umur_mhs. Named variable ini selanjutnya menjadi argumen pertama
method $stmt->bindParam().
Versi penulisaan terakhir prepared statement yang akan kita pelajari adalah dengan menggabungkan
proses bind dan execute sekaligus. Agar cara ini bisa dijalankan, data dari prepared statement harus
dibuat dalam bentuk array. Berikut contohnya:
<?php
try {
// buat koneksi dengan database
$dbh = new PDO('mysql:host=localhost;dbname=universitas', "root",
"");
// set error mode
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

181 | P a g e

http://www.duniailkom.com_________________________________________________________
// siapkan query (prepare)
$stmt = $dbh->prepare('INSERT INTO mahasiswa_ilkom VALUES
(:nim_mhs, :nama_mhs, :umur_mhs, :tempat_lahir_mhs, :ipk_mhs)');
// siapkan "data" query
$nim_mhs="109023031";
$nama_mhs="Jerry Kurniawan";
$umur_mhs=23;
$tempat_lahir_mhs="Malang";
$ipk_mhs=3.1;
// jalankan query (execute)
$stmt->execute(array(':nim_mhs' => $nim_mhs, ':nama_mhs' =>
$nama_mhs,
':umur_mhs' => $umur_mhs, ':tempat_lahir_mhs' => $tempat_lahir_mhs,
':ipk_mhs' => $ipk_mhs ));
// tampilkan hasil proses query
echo $stmt->rowCount()." data berhasil ditambahkan";
// hapus koneksi
$dbh = null;
} catch (PDOException $e) {
// tampilkan pesan kesalahan jika koneksi gagal
print "koneksi/query bermasalah: " . $e->getMessage() . "<br/>";
die();
}
?>

Perbedaan dalam kode program diatas terletak dalam $stmt->execute(). Kali ini method $stmt>execute() kita input dengan array sebagai argumen yang akan menjadi data untuk query. Dengan
cara ini kita tidak perlu menggunakan method $stmt->bindParam().
Metode prepared statement yang kita pelajari disini bisa menjadi alternatif dari cara menjalankan
query MySQL dengan metode biasa menggunakan $dbh->query(). Prepared statements mungkin
masih relatif jarang anda jumpai, namun metoda ini menawarkan keamanan yang lebih dan banyak
digunakan di dalam aplikasi PHP yang lebih luas seperti framework PHP.

Tutorial Form PHP


Dalam Tutorial Form PHP ini duniailkom akan membahas cara menangani form HTML dengan PHP.
Penggunaan form di dalam sebuah website adalah hal yang wajib. Mulai dari form search, form login,
hingga form registrasi.
Metoda pengiriman form seperti GET dan POST akan kita bahas secara mendalam, termasuk tentang
aspek keamanan sebuah form.

Tutorial Form PHP: Cara Membuat dan Memproses Form HTML


dengan PHP
Dalam sesi tutorial PHP lanjutan kali ini, kita akan membahas tentang Cara Membuat dan Memproses
Form HTML dengan PHP.

182 | P a g e

http://www.duniailkom.com_________________________________________________________
Form adalah fitur yang sangat penting dalam sebuah website. Hampir seluruh situs modern
membutuhkan form sebagai fitur utama, seperti form pendaftaran, form login, form register
peserta,form pembayaran dan lain-lain.
Untuk dapat memproses data dari form, kita membutuhkan perpaduan antara kode HTML dengan
kode PHP. HTML digunakan untuk menampilkan form, sedangkan PHP digunakan untuk memproses
form. CSS dan JavaScript biasanya juga digunakan untuk mempercantik halaman dan memudahkan
interaksi, namun dalam tutorial ini saya tidak akan membahas CSS dan JavaScriptagar kita bisa fokus
membahas pemrosesan Form dengan PHP.

Tutorial Form PHP Part 1: Cara Menampilkan Hasil Form HTML


dengan PHP
Langkah pertama untuk dapat memproses hasil form HTML, adalah mempelajari cara mengambilnilai
dari form dan menampilkannya. Dalam tutorial kali ini, kita akan membahas Cara Menampilkan Hasil
Form HTML dengan PHP.

Mengenal Struktur Dasar Form HTML (atribut action dan method)


Tutorial mengenai cara membuat form menggunakan HTML telah saya bahas lengkap di tutorial form
HTML, dalam tutorial form PHP kali ini kita hanya fokus kepada bagian form yang berkaitan dengan
PHP. Berikut adalah struktur dasar form sederhana dalam HTML:
<form action="proses.php" method="get">
Nama: <input type="text" name="nama" />
<br />
E-Mail: <input type="text" name="email" />
<br />
<input type="submit" value="Proses Data" >
</form>

Jika anda menjalankan form HTML tersebut, akan ditampilkan form sederhana dengan 2 buah kotak
inputan dan sebuah tombol Proses Data yang berfungsi untuk submit form. Dari struktur dasar
tersebut, di dalam tag <form> terdapat 2 buah atribut. Yakni atribut action dan atribut method. Kita
akan membahas kedua atribut ini secara lebih rinci.
Atribut pertama adalah action. Atribut action ini diisi dengan nilai berupa alamat halaman PHP dimana
kita akan memproses isi form tersebut. Dalam contoh diatas, saya membuat nilaiaction=proses.php,
yang berarti saya harus menyediakan sebuah file dengan nama: proses.phpuntuk memproses form
tersebut.
Isi atribut action sebenarnya adalah alamat dari halaman PHP. Karena atribut action pada contoh
diatas ditulis action=proses.php, maka file proses.php harus berada di dalam 1 folder dengan
halaman HTML yang berisi form ini. Namun anda bisa dengan bebas mengubah alamat proses.phpini
tergantung dimana file tersebut berada, misalnya menjadi alamat relatif seperti
action=file_php/proses.php,
ataupun
alamat
absolut
sepert
iaction=http://www.duniailkom.com/proses.php.

183 | P a g e

http://www.duniailkom.com_________________________________________________________
Atribut kedua yang berkaitan dengan pemrosesan form HTML adalah atribut method. Atribut inilah
yang akan menentukan bagaimana cara form dikirim ke dalam halaman proses.php. Nilai dari
atribut method hanya bisa diisi dengan1 dari 2 pilihan, yakni get atau post.
Jika seperti contoh diatas saya membuat nilai method=get, maka nilai dari form akan dikirim melalui
alamat URL website. Namun jika nilai method diubah menjadi method=post, maka nilai form tidak
akan terlihat di dalam alamat URL. Perbedaan antara method get dan post akan kita bahas secara
mendalam dalam tutorial selanjutnya. Nilai dari atribut method ini juga akan mempengaruhi cara kita
memproses nilai dari form.
Setelah membuat tag pembuka form dengan atribut action dan method, isi form selanjutnya adalah
2 buah tag <input type=text> yang akan menampilkan kotak isian form. Hal yang paling penting
diperhatikan adalah atribut name dari masing-masing tag <input>. Nilai dari name inilah yang menjadi
penanda masing-masing objek form agar dapat diproses dengan PHP.
Setelah 2 buah text input, objek form terakhir adalah tombol submit yang apabila di klik akan
mengirimkan data dari form ke halaman proses.php untuk diproses. Atribut penting disini adalah
atribut type=submit, yang akan otomatis mengirim isian form ketika tombol ini di klik.

Cara Mengirimkan Nilai Form HTML ke dalam PHP


Untuk memahami Cara Mengirimkan Nilai Form HTML ke dalam PHP, kita akan langsung praktek
dengan membuat 2 buah file, yakni halaman HTML yang berisi form dengan nama file form.html, dan
halaman PHP yang akan berisi kode untuk menampilkan hasil form dengan nama file:proses.php.
Karena kita akan mengeksekusi kode PHP, kedua file ini harus dijalankan dengan XAMPP dan berada
di dalam folder htdoc. Untuk contoh kali ini saya akan membuat folder belajar_form di dalam
folder htdoc XAMPP, sehingga untuk mengakses kedua halaman adalah dari alamat
:http://localhost/belajar_form/form.html dan http://localhost/belajar_form/proses.php (mengenai
cara install dan menggunakan XAMPP telah saya bahas pada tutorial Cara Menjalankan File PHP
dengan XAMPP)
Sebagai langkah pertama, kita akan membuat file form.html yang berisi kode HTML sebagai berikut:
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/>
<title>Belajar Form PHP</title>
</head>
<body>
<h2>Tutorial Belajar Form HTML - PHP </h2>
<form action="proses.php" method="get">
Nama: <input type="text" name="nama" />
<br />
E-Mail: <input type="text" name="email" />
<br />
<input type="submit" value="Proses Data" >
</form>
</body>
</html>

184 | P a g e

http://www.duniailkom.com_________________________________________________________

Kode HTML diatas hanya berisi struktur kode HTML sederhana dengan 1 buah form yang berisi 2 text
inputan untuk nama dan e-mail. Struktur form ini persis sama dengan form kita bahas pada bagian
awal tutorial ini.
Sebelum membuat halaman proses.php, kita akan mencoba melakukan sedikit percobaan dengan
form HTML ini. Silahkan coba input kedua kotak isian form ini dengan nilai apapun dan klik
tombolsubmit. Ketika anda men-klik tombol submit, anda akan mendapati halaman error seperti
berikut ini:

Halaman error tersebut memberitahu kita bahwa halaman proses.php tidak ditemukan (yang
memang belum kita buat), namun perhatikan alamat URL pada address bar web browser, kita bisa
melihat ada penambahan seperti berikut ini:
http://localhost/belajar_form/proses.php?nama=duniailkom&email=duniailkom%40gmail.com
Perhatikan bahwa alamat URL sekarang telah berganti menjadi proses.php, yang kemudian diikuti
dengan ?nama=duniailkom&email=duniailkom%40gmail.com. Pesan inilah yang sebenarnya di kirim
oleh halaman form.html sewaktu kita men-klik tombol submit.
Tanda ? menandakan awal dari data form, dan kemudian diikuti dengan nama dari objek form dan
nilainya, dalam contoh ini, nilai yang akan dikirim adalah nama=duniailkom. Karakter & digunakan
sebagai tanda pemisah nilai objek form yang 1 dengan yang lain, kemudian diikuti dengan nilai

185 | P a g e

http://www.duniailkom.com_________________________________________________________
kedua email=duniailkom%40gmail.com. Tanda %40 dalam kode ini adalah kode karakter HTML untuk
karakter @ yang biasa digunakan di dalam email.
Jika anda menambahkan objek form ketiga, maka alamat URL akan semakin panjang. Kita bisa melihat
data yang dikirim karena pada saat pembuatan form, saya menggunakan method=get. Namun jika
anda merubah form HTML kita dengan menggunakan method=post, maka anda tidak akan melihat
karakter-karakter ini di dalam URL.
Selanjutnya kita akan mencoba menampilkan nilai ini dengan PHP pada halaman proses.php.

Cara Menampilkan nilai Form HTML dengan PHP ($_GET dan $_POST)
Setelah membuat halaman form.html yang berisi form HTML, kita akan membuat
halamanproses.php yang berisi kode PHP untuk menangani nilai dari form ini.
Silahkan buat file proses.php dengan kode program sebagai berikut, dan savelah di dalam folder yang
sama dengan form.html berada:
<?php
echo $_GET['nama'];
echo "<br />";
echo $_GET['email'];
?>

Sebelum kita membahas kode program PHP tersebut, silahkan buka kembali halaman form.html, isi
kotak input nama dan email, lalu klik tombol Proses Data. Apabila tidak ada error, maka akan tampil
hasil berikut ini:

Tampilan diatas adalah hasil dari 3 baris kode program PHP yang kita buat di dalam halaman
proses.php.
Untuk mengambil nilai form HTML, PHP menyediakan 2 buah variabel global yaitu
variabel $_GETdan $_POST. Kita menggunakan variabel $_GET jika pada saat pembuatan form
menggunakan atribut method=get, dan menggunakan variabel $_POST jika form dibuat
dengan method=post.
Kedua variabel ini sebenarnya adalah array, sehingga cara mengakses nilai dari form adalah dengan
cara: $_GET[nama_objek_form].
nama_objek_form adalah nilai dari atribut name di dalam form. Jika kita memiliki tag dengan kode
HTML <input type=text name=nama />, maka untuk mengakses nilainya adalah
dengan$_GET[nama], dan untuk tag <input type=text name=email /> diakses dengan
nilai$_GET[email].
Sebagai latihan, silahkan anda mengganti atribut method dalam file form.html menjadi:

186 | P a g e

http://www.duniailkom.com_________________________________________________________
<form action="proses.php" method="post">

Lalu ubah juga file proses.php menjadi:


<?php
echo $_POST['nama'];
echo "<br />";
echo $_POST['email'];
?>

Dan PHP akan menampilkan hasil yang sama, namun kali ini form dikirim menggunakanmethod=post.
Di dalam tutorial kali ini kita telah membahas dasar Cara Menampilkan Hasil Form HTML dengan PHP,
namun apa yang kita bahas disini hanya cara paling dasar untuk menampilkan nilai form dengan PHP.
Dalam tutorial Form PHP selanjutnya kita akan membahas lebih dalam tentang perbedaan pengiriman
form dengan method GET dan POST.
Tutorial Form PHP Part 2: Perbedaan Metode Pengiriman Form GET dan POST dalam PHP
Salah satu pertimbangan dasar dalam membuat dan memproses form PHP adalah apakah form
tersebut dikirim menggunakan method=get atau method=post. Dalam tutorial kali ini kita akan
membahas dan mempelajari keunggulan dan kelemahan masing-masing metode pengiriman form ini.

Keunggulan dan Kelemahan Method Form GET


Kelemahan yang paling jelas jika kita menggunakan method=get adalah nilai dari form dapat dilihat
langsung di dalam URL yang dikirimkan. Jika anda membuat form untuk data-data yang sensitif
seperti password, maka form dengan method=get bukanlah pilihan yang tepat.
Form dengan method=get disarankan untuk form yang berfungsi menampilkan data, yaitu dimana
hasil isian form hanya digunakan untuk menampilkan data, sesuai dengan arti kata get yang bisa
berarti: ambil. Sehingga method=get sebaiknya digunakan untuk form yang mengambil data dari
database.
Salah satu penggunaan method=get yang umum digunakan adalah pada form pencarian (form
search). Dengan membuat hasil inputan form terlihat jelas dalam URL, pengunjung web bisa dengan
mudah menebak alur kerja dari situs kita. Bahkan pengunjung bisa membuat aplikasi pencarian
sendiri dengan memanfaatkan fasilitas ini.
Sebagai contoh, di dalam situs duniailkom, kotak input search di kanan atas halaman ini dibuat
dengan method=get. Misalkan kita ingin mencari seluruh postingan yang berkaitan dengan Form
PHP, maka kita bisa mengetikkan kata Form PHP, kemudian men-klik tombol enter di keyboard.
Beberapa saat kemudian, hasil pencarian akan ditampilkan. Jika diperhatikan alamat URL pada web
browser, akan berubah menjadi:
http://www.duniailkom.com/?s=form+php&submit=Search
Hasil URL ini merupakan query pencarian default yang digunakan oleh wordpress (CMS yag digunakan
di duniailkom).
Setelah
nama
domain
www.duniailkom.com,
selanjutnya
kita
melihat
karakter ?s=form+php&submit=Search. Karakter-karakter ini adalah hasil format form
dengan metode=get. Tanda ? menandakan awal nilai form, tanda + untuk menandakan spasi, dan
tanda & untuk memisahkan objek form. Dengan memanfaatkan keterangan ini, kita bisa melakukan
pencarian hanya melalui URL secara lansung, tanpa harus melalui form.
Sebagai contoh, jika anda ingin mencari semua postingan dengan kata kunci Integer dalam PHP,
maka anda bisa menggunakan link berikut:
http://www.duniailkom.com/?s=integer+dalam+php&submit=Search

187 | P a g e

http://www.duniailkom.com_________________________________________________________
Untuk mengujinya, silahkan copypaste text tersebut ke address bar web browser, dan situs
duniailkom akan langsung menampilkan hasil pencarian dengan kata kunci Integer dalam PHP. Hal
ini membuat halaman web menjadi lebih fleksibel.
Untuk contoh lainnya, jika anda mengikuti tutorial Form HTML ini dari Part 1, maka kita memiliki
fileproses.php yang berfungsi untuk memproses hasil form. Fleksibilitas yang diberikan oleh variable
$_GET membuat kita bisa menampilkan nilai dalam proses.php tanpa menggunakan form sama sekali.
Jika isi dari file proses.php adalah:
<?php
echo $_GET['nama'];
echo "<br />";
echo $_GET['email'];
?>

Kita bisa membuat langkah yang sama seperti contoh di dalam pencarian Integer dalam
PHPsebelumnya. Sekarang copy paste URL berikut ini kedalam address bar web browser (pastikan
aplikasi XAMPP sudah berjalan dan file proses.php berada di dalam folder belajar_form):
http://localhost/belajar_form/proses.php?nama=fajar&email=fajar%40gmail.com

Dan hasil tampilan halaman proses.php akan menampilkan nama fajar dan alamat
emailfajar@gmail.com. Hasil ini didapat hanya dengan menginput nama tersebut dengan URL (tanpa
form).
Dari contoh ini kita bisa melihat bahwa PHP mendeteksi nilai dari method=get, hanya berdasarkan
URL yang diberikan. Cara mengakali variabel $_GET tanpa form ini sering digunakan sebagai sarana
untuk mengirim sebuah nilai dari satu halaman PHP ke halaman lainnya (sering digunakan untuk
menampilkan pesan error kepada user).
Karena sifat method=get yang harus menggunakan URL untuk mengirim data form, PHP membatasi
hanya bisa memproses 1024 karakter saja. Sehingga jika anda memiliki form yang isinya kemungkinan
akan melebihi 1024 karakter, sebaiknya menggunakan method=post.

Keunggulan dan Kelemahan Method Form POST


Keuntungan mengunakan method=post dalam pembuatan form PHP adalah bahwa isi dari form tidak
ditampilkan di URL, sehingga method ini sesuai untuk data-data yang bersifat sensitif
sepertiusername dan password.
Sesuai dengan namanya, method=post disarankan digunakan untuk form yang digunakan untuk
menambah data (posting data) atau sebuah proses yang akan mengubah isi database, seperti
query Insert, Delete. Contoh penggunaan method=post ini sering digunakan untuk form
register danform login yang diaggap bersifat rahasia.
Jika kita membuat form untuk keperluan upload file (menggunakan tag <input type=file>), maka kita
harus membuat form dengan method=post.
188 | P a g e

http://www.duniailkom.com_________________________________________________________

Sebagai kesimpulan terakhir, pilihan antara method=get dengan method=post bergantung kepada
tingkat sensitifitas data. Untuk data yang sensitif seperti password atau yang melakukan suatu
perubahan ke database, sebaiknya menggunakan method=post. Namun untuk data yang ditujukan
untuk menampilkan, atau mengambil sesuatu dari database, sebaiknya menggunaan method=get.
Tutorial Form PHP Part 3: Pengertian Variabel SuperGlobals $_GET, $_POST dan $_REQUEST
Dalam tutorial tentang Cara Menampilkan Hasil Form HTML dengan PHP, kita telah membahas sekilas
tentang variabel $_GET dan $_POST yang digunakan untuk menampilkan hasil Form HTML,
serta perbedaan metoda pengiriman GET dan POST. Dalam tutorial kali ini kita akan membahas lebih
dalam tentang pengertian variabel superglobal $_GET, $_POST dan juga $_REQUEST yang digunakan
untuk memproses Form dalam PHP.

Pengertian Variabel SuperGlobal dalam PHP


Variabel $_GET dan $_POST (dan juga $_REQUEST) di dalam PHP termasuk ke dalam kelompok
variabel yang dikenal dengan Variabel SuperGlobal.
Variabel SuperGlobals adalah variabel khusus di dalam PHP yang bisa diakses dari halaman PHP
manapun tanpa perlu mendefinisikannya terlebih dahulu, dan untuk mengakses variabel ini kita juga
tidak perlu menggunakan keyword global (sebagaimana variabel global pada umumnya)
Selain variabel $_GET, $_POST dan $_REQUEST, PHP masih memiliki beberapa
variabel supergloballainnya seperti $_COOKIE, $_SESSION, dan $_SERVER. Ciri khusus untuk variabel
global di dalam PHP, diawali dengan tanda $_. Namun pada tutorial ini kita hanya fokus kepada
variabel $_GET, $_POST dan $_REQUEST.
Variabel $_GET, $_POST dan $_REQUEST merupakan tipe data array, sehingga untuk mengakses
nilainya, kita menggunakan cara akses array yakni dengan menggunakan kurung siku
seperti:$_GET[nama] dimana nama adalah nilai dari atribut name pada objek form yang akan
diakses.

Perbedaan variabel global $_GET, $_POST dan $_REQUEST


Seperti yang telah kita praktekkan dalam tutorial Cara Menampilkan Hasil Form HTML dengan PHP,
kita telah mengetahui bahwa jika form dikirim menggunaan method=get maka di dalam PHP kita
mengaksesnya dengan variabel $_GET, namun jika form dibuat menggunakan method=post, kita
mengaksesnya dengan variabel $_POST.
Bagaimana jika pada saat memproses form kita tidak mengetahui dengan pasti apakah form dikirim
dengan GET atau POST? PHP menyediakan variabel $_REQUEST sebagai salah satu solusinya.
Variabel $_REQUEST menampung nilai form yang dikirim dengan method=get,
maupunmethod=post secara bersamaan.
Untuk mencobanya, silahkan jalankan file form.html dengan isi kode HTML sebagai berikut:
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/>
<title>Belajar Form PHP</title>
</head>
<body>
<h2>Tutorial Belajar Form HTML - PHP </h2>
<form action="proses.php" method="get">
Nama: <input type="text" name="nama" />
<br />

189 | P a g e

http://www.duniailkom.com_________________________________________________________
E-Mail: <input type="text" name="email" />
<br />
<input type="submit" value="Proses Data" >
</form>
</body>
</html>

Halaman form.html diatas persis sama dengan yang kita gunakan pada tutorial sebelumnya, namun
untuk halaman proses.php, kita akan modifikasi dengan menggunakan variabel$_REQUEST:
<?php
echo $_REQUEST['nama'];
echo "<br />";
echo $_REQUEST['email'];
?>

Jika anda menjalankan form.html dan men-klik tombol Proses Data, maka hasil form akan
ditampilkan sebagaimana mestinya. Anda juga bisa mengubah method form menjadi post, dan
variabel $_REQUEST akan tetap menampilkan hasil form.
Jadi, variabel apa yang sebaiknya digunakan? apakah $_GET, $_POST atau $_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
menggunakanmethod=post, maka gunakan $_POST, namun jika metodanya tidak dapat dipastikan,
variabel superglobal $_REQUEST bisa menjadi solusi.

Tutorial Form PHP Part 4: Pengertian Register Global dan Register


Long Array (deprecated)

190 | P a g e

http://www.duniailkom.com_________________________________________________________
Selain menggunakan variabel SuperGlobals $_GET, $_POST dan $_REQUEST, PHP masih menyediakan
cara lain untuk mengakses nilai dari form. Dalam tutorial kali ini kita akan MengenalPengertian
Register Global dan Register Long Array.

Pengertian Register Global dan Register Long Array


Register Global dan Register Long Array adalah metode lain dalam PHP yang bisa digunakan untuk
menampilkan hasil form, namun kedua metode ini sekarang sudah menyandang status
deprecated yang berarti tidak disarakan digunakan dan kemungkinan tidak akan didukung
olehPHP pada masa mendatang. Kedua metode ini adalah metode legacy atau warisan yang
digunakan pada versi PHP terdahulu.
Saya membahas Register Global dan Register Long Array hanya sebagai menambah pengetahuan,
karena mungkin saja kita masih mendapati kode PHP lama (terutama versi PHP 4 kebawah) yang masih
menggunakan kedua metode ini.
Baik Register Global dan Register Long Array sudah tidak disarankan untuk digunakan karena memiliki
celah keamanan yang mudah dibobol. Anda disarankan untuk menggunakan variabel$_GET,
$_POST atau $_REQUEST.

Cara Mengakses Nilai Form dengan Register Global


Register Global adalah sebuah metode dalam PHP yang memudahkan pengambilan nilai form
dengan cara menjadikan atribut nama dari objek form secara otomatis menjadi variabel di dalam PHP.
Misalkan kita memiliki objek form sebuah inputan dengan kode HTML sebagai berikut:
<input type="text" name="user_name" />
Maka di dalam halaman PHP, akan langsung tersedia sebuah variabel $user_name yang berisi nilai
dari objek form tersebut dan siap untuk diakses, terlepas dengan cara apa form tersebut dikirim
(apakah get atau post)
Dalam versi PHP 5.5 bawaan XAMPP yang saya gunakan, Register Global sudah tidak didukung lagi.
Namun jika anda menggunakan PHP versi lama dan ingin mencobanya, maka kita harus mengubah
sebuah settingan PHP dalam file php.ini. (cara mengubah setingan file php.ini pernah dibahas
dalam Cara Merubah File Konfigurasi php.ini)
Bukalah file php.ini, lalu cari temukan baris setingan berikut:
191 | P a g e

http://www.duniailkom.com_________________________________________________________
register_globals=off

Kemudian aktifkan fasilitas ini menjadi:


register_globals=on

Setelah diubah, save file php.ini, dan matikan web server apache (dari XAMPP Control panel), lalu
aktifkan lagi (restart). Hal ini diperlukan agar web server Apache dapat membaca perubahan setingan
PHP yang baru saja kita lakukan.
Selanjutnya, mari kita gunakan kembali halaman form.html sebagai contoh form. Jika anda belum
membuah file tersebut, berikut adalah kode HTML yang dibutuhkan:
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/>
<title>Belajar Form PHP</title>
</head>
<body>
<h2>Tutorial Belajar Form HTML - PHP </h2>
<form action="proses.php" method="get">
Nama: <input type="text" name="nama" />
<br />
E-Mail: <input type="text" name="email" />
<br />
<input type="submit" value="Proses Data" >
</form>
</body>
</html>

192 | P a g e

http://www.duniailkom.com_________________________________________________________

Dalam percobaan Register Global ini, kita tidak akan melakukan perubahan apa-apa pada
halamanform.html, namun pada file proses.php, ubahlah menjadi:
<?php
echo $nama;
echo "<br />";
echo $email;
?>

Silahkan mencoba form tersebut, dan jika setingan register_globals telah aktif, maka hasil form akan
tampil sebagaimana contoh-contoh kita sebelumnya. Anda juga bisa mengubah metode pengiriman
form dari method=get menjadi method=post dan halaman proses.php akan menampilkan hasilnya
dengan sukses.
Sepintas cara pengaksesan nilai form seperti ini sangat memudahkan penulisan program, namun
register global memiliki celah keamanan yang bisa berdampak fatal. Hal ini terjadi karena pengunjung
website bisa memasukkan variabel PHP ke dalam halaman kita.
Misalkan kita memiliki sebuah halaman login.php yang berfungsi untuk memproses hak akses untuk
bisa masuk ke situs, dan kode PHP nya adalah sebagai berikut:
<?php
// cek apakah user ada di database
mysql_connect("localhost","root","");
mysql_select_db("mahasiswa");
$user_db="SELECT * FROM tabel_user WHERE user='$user_name'";
$match = mysql_num_rows($user);
//jika user valid, ubah variabel $hak_akses menjadi true
if ($match)
{
$hak_akses=true;
}
//jika hak akses true, masuk ke proses utama
if ($hak_akses==true)
{
// kode program jika user valid
}
?>

193 | P a g e

http://www.duniailkom.com_________________________________________________________
Sekarang, jika register_global = on, seseorang bisa melompati bagian validasi tersebut dengan
menuliskan alamat URL berikut:
login.php?hak_akses=true
Dengan mengetikkan alamat tersebut, variabel $hak_akses akan langsung bernilai true di dalam
halaman login.php, sehingga seseorang bisa mengakses sistem kita tanpa melalui proses validasiuser.
Karena hal inilah, mengaktifkan register global dianggap berbahaya dan tidak disarankan.

Cara Mengakses Nilai Form dengan Register Long Array


Cara lain untuk mengambil nilai dari form adalah menggunakan Register Long Array. Sesuai dengan
namanya, Register Long Array memiliki nama variabel yang lebih panjang jika dibandingkan variabel
biasa (variabel $_GET dan $_POST).
Untuk mengambil nilai form yang dikirim dengan method=get, kita menggunakan$HTTP_GET_VARS,
dan untuk method=post menggunakan $HTTP_POST_VARS.
Sama seperti Register Globals, Register Long Array tidak didukung lagi untuk PHP versi terbaru. Jika
anda memiliki PHP versi lama dan ingin mencobanya, lakukan perubahan settingan php.iniuntuk
pilihan register_long_arrays=on, seperti gambar berikut ini:

Setelah itu, restart web server apache menggunakan XAMPP Control Panel.
Sebagai contoh, masih menggunakan halaman form.html, kali ini saya akan mengubah
halamanproses.php menjadi:
<?php
echo $HTTP_GET_VARS['nama'];
echo "<br />";
echo $HTTP_GET_VARS['email'];
?>

Dan jika tidak ada masalah, kode program tersebut akan menampilkan hasil inputan form dari
halaman form.html.
Register Long Array tidak disarankan lagi karena PHP telah memperkenalkan metoda
variabel$_GET dan $_POST yang lebih praktis.
Dalam tutorial kali ini, kita telah mempelajari cara mengakses nilai form menggunakan Register
Globals dan Register Long Array. Kedua cara ini sudah tidak digunakan lagi, dan saya membahasnya
karena mungkin kita masih menemukan kode PHP lama yang masih menggunakannya.

194 | P a g e

http://www.duniailkom.com_________________________________________________________
Dalam tutorial form PHP selanjutnya, kita akan menggunakan variabel super
global $_GET dan$_POST untuk menampilkan hasil form.
Tutorial Form PHP Part 5: Cara Membuat Validasi Form PHP (fungsi isset dan empty)
Setelah berhasil mengambil dan menampilkan nilai dari form, hal berikutnya yang harus kita lakukan
terhadap data tersebut adalah melakukan proses validasi. Proses validasi dilakukan terhadap nilai
yang dimasukkan melalui form.
Dalam tutorial kali ini kita akan membahas Cara Membuat Validasi Form dengan PHP menggunakan
fungsi isset() dan fungsi empty().

Pentingnya Melakukan Validasi Nilai Form


Nilai yang telah diinput oleh user atau pengunjung web, tidak bisa begitu saja di simpan langsung ke
dalam database. Karena kita tidak tahu apakah nilai tersebut telah sesuai dengan nilai yang kita
kehendaki. Misalkan apakah nilai tersebut harus berupa angka, atau hanya bisa berupa huruf, atau
apakah hanya bisa diinput dalam range tertentu saja.
Dalam kasus yang ekstrim, seorang user bisa saja memasukkan kode script atau tag HTML yang bisa
merusak situs kita, hal ini dikenal dengan Cross-site Scripting. Sebuah proses validasi nilai merupakan
hal yang sangat penting dalam merancang form. Khusus untuk validasi mencegahCross-site
Scripting dan juga HTML injection ini akan saya bahas pada tutorial form PHP berikutnya.
Dalam pembahasan tutorial validasi form ini, saya masih menggunakan contoh
halaman form.htmlyang pernah kita buat pada tutorial sebelumnya, berikut adalah kode HTML untuk
halaman form.html:
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/>
<title>Belajar Form PHP</title>
</head>
<body>
<h2>Tutorial Belajar Form HTML - PHP </h2>
<form action="proses.php" method="get">
Nama: <input type="text" name="nama" />
<br />
E-Mail: <input type="text" name="email" />
<br />
<input type="submit" value="Proses Data" >
</form>
</body>
</html>

195 | P a g e

http://www.duniailkom.com_________________________________________________________

Memeriksa Ketersediaan Variabel Form dengan Fungsi isset()


Validasi pertama yang paling sederhana dan hampir selalu ada dalam tiap proses validasi form dalam
PHP adalah memeriksa apakah objek form tersebut sudah tersedia atau tidak. Sebagai contoh
sederhananya: apakah variabel $_GET[nama] tersedia untuk diproses atau tidak.
Proses memeriksa ketersediaan variabel ini menjadi penting karena PHP akan mengeluarkan pesan
peringatan jika kita mengakses nilai sebuah variabel yang belum didefenisikan terlebih dahulu.
Sebagai contoh, jika kita mengakses langsung halaman proses.php (tanpa melalui halamanform.html)
dan tanpa menambahkan URL (seperti pembahasan pada tutorial Perbedaan Metode Pengiriman
Form GET dan POST) PHP akan menampilkan pesan peringatan seperti berikut ini:

Notice: Undefined index adalah pesan error yang terjadi karena kita langsung menampilkan
variabel $_GET[nama] dan $_GET[email] yang memang belum diset sebelumnya.
Untuk memeriksa apakah sebuah objek form telah didefenisikan atau telah di-set sebelumnya, kita
bisa menggunakan fungsi bawaan PHP: isset(). Fungsi isset() akan menghasilkan nilai true jika sebuah
variabel telah didefenisikan, dan false jika variabel tersebut belum dibuat.
196 | P a g e

http://www.duniailkom.com_________________________________________________________
Sebagai langkah antisipasi, saya akan membuat proses validasi untuk menangani variabel $_GETyang
belum di-set, berikut adalah modifikasi file proses.php:
<?php
if (isset($_GET['nama']))
{
echo $_GET['nama'];
}
echo "<br />";
if (isset($_GET['email']))
{
echo $_GET['email'];
}
?>

Sekarang, file proses.php tidak akan menghasilkan error apabila diakses tanpa melalui form.html.
Namun perubahan kode tersebut tidak terlalu berguna karena tidak memberikan pesan error yang
jelas. Berikut adalah modifikasi file proses.php agar lebih informatif:
<?php
if (isset($_GET['nama']) AND isset($_GET['email']))
{
echo $_GET['nama'];
echo $_GET['email'];
}
else
{
echo "Maaf, anda harus mengakses halaman ini dari form.html";
}
?>

Pada kode PHP diatas saya mengharuskan nilai $_GET[nama] dan $_GET[email] tersedia, baru nilai
ditampilkan, namun jika tidak ada, akan ditampilkan pesan bahwa halaman ini hanya bisa diakses
dari form.html.

Memeriksa Apakah Variabel Form Telah Diisi


Fungsi isset() yang kita bahas sebelumnya hanya memeriksa apakah sebuah objek form ada atau tidak.
Fungsi isset() tetap bernilai true meskipun user tidak mengisi form sama sekali (variabel form bernilai
kosong, namun variabel tersebut dianggap telah di-set).
Untuk memeriksa apakah sebuah objek form telah diisi atau tidak, kita bisa menggunakan
fungsi:empty().
197 | P a g e

http://www.duniailkom.com_________________________________________________________
Fungsi empty() akan menghasilkan nilai false jika sebuah variabel telah diisi, dan bernilai true jika
variabel tersebut belum diisi. Dengan menggunakan stuktur IF dan fungsi empty(), kita bisa membuat
logika validasi objek form mana saja yang dianggap perlu (harus diisi) dan mana yang boleh
dikosongkan. Dan kemudian menampilkan pesan error yang sesuai.
Sebagai contoh, saya akan memodifikasi file proses.php agar menampilkan pesan error jika kotak
input nama tidak diisi. Berikut adalah kode PHP pada halaman proses.php:
<?php
if (isset($_GET['nama']) AND isset($_GET['email']))
{
$nama=$_GET['nama'];
$email=$_GET['email'];
}
else
{
die("Maaf, anda harus mengakses halaman ini dari form.html");
}
if (!empty($nama))
{
echo "Nama: $nama <br /> Email: $email";
}
else
{
die("Maaf, anda harus mengisi nama");
}
?>

Dalam kode PHP diatas, saya memodifikasi beberapa bagian kode program.
Pada logika IF pertama, saya melakukan pengecekan apakah variabel $_GET[nama] dan
$_GET[email] tersedia atau tidak. Jika tersedia maka pindahkan nilainya ke
variabel $nama dan$email agar lebih mudah untuk diproses. Namun jika tidak, fungsi die() akan
menghentikan proses dan menampilkan pesan kesalahan.
Pada logika IF kedua, saya memeriksa apakah variabel $nama kosong atau tidak dengan
fungsi!empty(). Fungsi !empty($nama) akan menghasilkan nilai true hanya jika variabel $nama tidak
kosong (perhatikan tanda ! sebagai pembalik logika empty()). Namun jika $nama ternyata kosong
(tidak diisi), maka tampilkan pesan kesalahan.

Menyeleksi Tipe Data Objek Form


Setelah objek form dipastikan tersedia, tidak kosong, validasi berikutnya yang biasanya dilakukan
adalah memastikan tipe data dan range data yang diinput oleh user.
Untuk mengecek tipe data sebuah variabel, PHP menyediakan beberapa fungsi tergantung tipe
datanya, yakni fungsi is_string(), is_int(),is_float(), is_numeric(), is_bool(), is_array(), dan
198 | P a g e

http://www.duniailkom.com_________________________________________________________
is_object(). Sesuai dengan namanya, masing-masing fungsi tersebut akan mengecek tipe data dari
variabel yang ditest.
Diantara fungsi-fungsi diatas, fungsi is_numeric() mungkin butuh sedikit penjelasan.
Fungsiis_numeric() akan mengecek apakah sebuah tipe data merupakan angka baik
itu float atauinteger.
Khusus objek form variabel angka seperti umur, biasanya selain menyeleksi apakah nilainya berupa
angka integer, kita mungkin juga menambahkan aturan bahwa nilai umur harus diatas 17 tahun. Untuk
menambahkan fungsi ini, fungsi is_int() dapat dikombinasikan dengan struktur IF.
Sebagai contoh saya akan menambahkan validasi untuk tag input nama bahwa nama tidak boleh diisi
dengan angka. Untuk keperluan ini saya akan menggunakan fungsi is_numeric(). Berikut adalah
modifikasi file proses.php:
<?php
if (isset($_GET['nama']) AND isset($_GET['email']))
{
$nama=$_GET['nama'];
$email=$_GET['email'];
}
else
{
die("Maaf, anda harus mengakses halaman ini dari form.html");
}
if(empty($nama))
{
die("Maaf, anda harus mengisi nama");
}
else
{
if (is_numeric($nama))
{
die("Maaf, nama harus berupa huruf");
}
else
{
echo "Nama: $nama <br /> Email: $email";
}
}
?>

Dalam kode diatas, saya menambahkan 1 lagi logika IF untuk menyeleksi apakah variabel $nama berisi
angka numerik (integer atau float). Jika $nama bertipe numerik, maka tampilkan pesan error.

Di dalam tutorial form PHP kali ini kita telah mempelajari cara menvalidasi nilai inputan form. Namun
apa yang telah kita pelajari disini hanya sebagian kecil dari proses validasi yang sebenarnya harus
199 | P a g e

http://www.duniailkom.com_________________________________________________________
dilakukan. Misalnya, untuk menfilter variabel $nama diatas, akan lebih cocok menggunakan regular
expression dari pada fungsi is_numeric(), namun yang penting kita telah bisa menangkapcara
pembuatan validasi form.
Di dalam tutorial berikutnya, masih berkaitan dengan proses validasi form, kita akan mempelajari
tentang Cara Mencegah Cross-site Scripting dan HTML injection.

Tutorial Form PHP Part 6: Validasi Form untuk Mencegah Crosssite Scripting dan HTML injection
Di dalam tutorial Form PHP sebelumnya, kita telah membahas cara melalakukan pengecekan variabel
form apakah telah tersedia untuk diproses (dengan fungsi isset()), apakah variabel tersebut kosong
(dengan fungsi empty()), atau apakah variabel form tersebut memiliki tipe data tertentu.
Masih berkaitan dengan proses validasi form, kali ini kita akan membahas tentang cara mencegah user
untuk memasukkan kode khusus seperti JavaScript atau kode HTML kedalam form. Dalam tutorial
kali ini kita akan mempelajari Cara Validasi Form untuk Mencegah Cross-site Scripting dan HTML
injection.

Pengertian Cross-site Scripting dan HTML injection


Cross-site Scripting atau sering disingkat dengan XSS adalah jenis serangan ke sebuah situs dengan
cara menyisipkan kode script (biasanya JavaScript) ke dalam sebuah situs. Hal ini hanya akan berhasil
jika situs tersebut memiliki fitur untuk menampilkan kembali isian form ke web browser, seperti form
komentar. Sedangkan HTML injection adalah istilah yang lebih spesifik kepada
cara menyisipkan kode HTML kedalam sebuah situs.
Sebagai programmer web, penanganan untuk Cross-site Scripting maupun HTML injection
merupakan hal yang sangat penting, terutama dalam pembuatan kode form dengan PHP. Karena form
pada dasarnya dapat diinput oleh siapa saja, maka kita perlu memproteksi situs dari kode-kode
berbahaya yang bisa diinput oleh user melalui form.

Contoh Cross-site Scripting dan HTML injection


Agar lebih memahami maksud dari Cross-site Scripting dan HTML injection, kita akan coba
menginputnya melalui contoh halaman form.html dan proses.php dari tutorial sebelumnya.
Silahkan buka halaman form kita (form.html), lalu input kode dibawah ini kedalam dalam salah satu
kotak inputan form:
<script>alert('Selamat datang di duniailkom')</script>

Dan anda akan mendapati tampilan berikut:

200 | P a g e

http://www.duniailkom.com_________________________________________________________

Tampilan tersebut adalah hasil dari kode JavaScript yang baru saja kita input melalui form. Kode
tersebut dapat berjalan karena pada halaman proses.php kita langsung menampilkan data yang
diinput oleh user tanpa melakukan proses filter.
Hal ini sangat berbahaya karena dengan kode JavaScript seseorang bisa melakukan hampir
segalanya dengan situs kita. Tidak hanya sekedar menampilkan ucapan selamat seperti kode diatas,
tetapi seseorang juga bisa merubah background, mengubah tampilan seluruh web, bahkan
mengarahkan pengunjung ke situs lain (redirect).

Sebagai contoh lainnya, seseorang bisa menginput kode berikut ke dalam kotak input nama:
Dunia <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> Ilkom

201 | P a g e

http://www.duniailkom.com_________________________________________________________

Walaupun kode diatas tidak mengandung script, namun kode HTML tersebut akan membuat tampilan
hasil form menjadi berantakan (bayangkan jika kita memiliki halaman yang berisi tabel berisi namanama seluruh user, dan kode diatas akan menghancurkan desain web yang telah dirancang).

Cara Mencegah Cross-site Scripting dan HTML injection


Salah satu cara sederhana untuk menghindari Cross-site Scripting dan HTML injection adalah dengan
membuat karakter-karakter yang memiliki makna di dalam HTML dan JavaScript untuk diubah
menjadi named entity, yaitu menkonversi karakter khusus seperti < menjadi &lt;, dan
karakter > menjadi &gt;. Atau cara lainnya adalah dengan menghilangkan sama sekali seluruh tag
HTML atau script dari inputan user.

Untuk kedua keperluan ini, PHP memiliki fungsi htmlspecialchars() dan fungsi strip_tags().
Fungsi htmlspecialchars() akan mengkonversi 4 karakter khusus HTML menjadi named entity
sehingga tidak akan di proses oleh web browser. Keempat karakter tersebut adalah: <, >, & dan .
Keempat karakter khusus inilah yang membuat web browser akan menerjemahkan sebuah string
menjadi kode HTML/JavaScript.
Sedangkan fungsi strip_tags() akan menghapus seluruh tag HTML dari inputan user.
Sebagai contoh, kita akan mengupdate halaman proses.php agar bisa mencegah seseorang
menyisipkan Cross-site Scripting dan HTML injection. Berikut adalah perintah PHP pada file
proses.php:
<?php
if (isset($_GET['nama']) AND isset($_GET['email']))
{
$nama=$_GET['nama'];
$email=$_GET['email'];
$nama=htmlspecialchars($nama);
$email=strip_tags($email);
}
else
{

202 | P a g e

http://www.duniailkom.com_________________________________________________________
die("Maaf, anda harus mengakses halaman ini dari form.html");
}
if(empty($nama))
{
die("Maaf, anda harus mengisi nama");
}
else
{
if (is_numeric($nama))
{
die("Maaf, nama harus berupa huruf");
}
else
{
echo "Nama: $nama <br /> Email: $email";
}
}
?>

Di dalam kode diatas, saya hanya menambahkan fungsi htmlspecialchars() untuk variabel $nama, dan
fungsi strip_tags () untuk variabel $email.
Untuk mengujinya, silahkan anda coba memasukkan kode JavaScript kita sebelumnya ke dalam kotak
input nama, yakni:
<script> alert('Selamat datang di duniailkom')</script>

dan nilai berikut ke dalam kotak input email:


Dunia <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> Ilkom

Kemudian perhatikan hasil tampilan dari proses.php. Seperti yang dirancang, kali ini hasil inputan
tersebut akan difilter agar lebih aman.

203 | P a g e

http://www.duniailkom.com_________________________________________________________

Jika anda melihat kode yang dihasilkan, maka akan terlihat bahwa fungsi htmlspecialchars() akan
mengubah
<script> alert('Selamat datang di duniailkom')</script>

menjadi
&lt;script&gt; alert('Selamat datang di duniailkom')&lt;/script&gt;

Perhatikan bahwa karakter khusus seperti < dan > telah diubah menjadi named entity.
Sedangkan untuk kotak inputan email, seluruh tag <br> telah di filter dan dihapus secara otomatis.

Validasi dengan htmlspecialchars atau strip_tags?


Pilihan apakan menggunakan fungsi htmlspecialchars() atau strip_tags() tergantung kepada alur
logika form yang kita buat. Untuk isian form seperti user_name, email, dan alamat akan lebih aman
jika kita tidak membolehkan tag HTML sama sekali (menggunakan fungsi strip_tags()), namun untuk
kotak form komentar, mungkin kita akan membolehkan beberapa tag untuk diproses seperti tag <b>,
tag <i>, atau mungkin juga tag <a>.
Fungsi strip_tags() memiliki argumen kedua yang bisa diisi dengan tag-tag HTML apa saja yang
dibolehkan. Jika kita membolehkan tag <a>, <b> dan tag <i> untuk variabel $komentar, maka
penulisannya bisa dibuat menjadi:
$komentar=strip_tags($komentar, '<a><b><i>').

Sedangkan untuk fungsi htmlspecialchars(), jika anda ingin karakter tanda kutip ( ) juga diubah
menjadi named entity, kita bisa menambahkan 1 argumen optional untuk
fungsihtmlspecialchars(), dengan pilihan ENT_QUOTES. Sehingga dalam contoh variabel $nama, kita
bisa menulisnya menjadi:
$nama=htmlspecialchars($nama, ENT_QUOTES);

Dengan demikian, jika diinput:


<script>alert('Selamat datang di duniailkom')</script>

Akan diproses menjadi:

204 | P a g e

http://www.duniailkom.com_________________________________________________________
&lt;script&gt; alert(&#039;Selamat datang di
duniailkom&#039;)&lt;/script&gt;

Perhatikan bahwa karakter kutip ( ) diganti menjadi kode &#039.

Mengenal Fungsi htmlentities()


Selain fungsi htmlspecialchars() dan fungsi strip_tags(), dalam pembahasan mengenai validasi dan
karakter entity HTML, PHP masih memiliki 1 lagi fungsi yang sering dipakai, yakni fungsihtmlentities().
Fungsi htmlentities() akan mengkonversi seluruh karakter khusus di dalam sebuah string menjadi
entity, tidak hanya karakter <, >, & dan seperti pada fungsi htmlspecialchars().
Fungsihtmlentities() akan memproses karakter khusus lain seperti: , , , atau menjadi named
entity.
Sebagai contoh, berikut adalah hasil konversi fungsi htmlentities():
<?php
$string = "Hll Dunalkom";
echo htmlentities($string);
?>

Dan berikut adalah hasilnya:

Seperti yang terlihat bahwa fungsi htmlentities() akan mengubah seluruh karakter khusus menjadi
named entity HTML.
Dalam
tutorial
kali
ini,
kita
telah
membahas
penggunaan
fungsi htmlspecialchars(), fungsistrip_tags() dan fungsi htmlentities() untuk membuat form kita lebih
aman. Dalam tutorial berikutnya, kita akan membahas trik dalam menampilkan pesan kesalahan di
halaman form.html, bukan di halaman proses.php seperti yang kita tampilkan pada tutorial ini dan
tutorial form PHP sebelumnya.

Tutorial Form PHP Part 7: Cara Mengirim Variabel (Pesan) Antar


Halaman PHP
Dari cara penanganan objek form dengan method=GET, kita dapat melihat
bahwa HTMLmengirimkan isi form melalui alamat URL. Cara pengiriman seperti ini bisa kita
manfaatkan sebagai sarana mengirim pesan (dalam bentuk variabel) antar halaman PHP. Jika
ditambah dengan fungsiheader(), kita bisa memanfaatkan fitur ini untuk menampilkan pesan
kesalahan dari sebuah form.
205 | P a g e

http://www.duniailkom.com_________________________________________________________

Cara Mengirim Variabel Antar Halaman PHP


Dalam PHP terdapat beberapa cara untuk mengirim variabel antar halaman. Salah satunya adalah
dengan memanfaatkan cara pengiriman form dengan method=GET. Jika kita mengirim form dengan
metode GET, maka hasil dari form akan ditambahkan di dalam menggunakan variabel
superglobal $_GET.
Sebagai contoh, jika di dalam form terdapat kotak input dengan atribut name=user_name yang diisi
dengan duniailkom, maka ketika dikirim untuk diproses ke halaman proses.php, di dalamURL akan
menjadi:
proses.php?user_name=duniailkom

dan didalam halaman proses.php, variabel $_GET[user_name] akan berisi duniailkom.


Dengan cara ini kita bisa mengirim variabel dari sebuah halaman ke halaman lain. Misalkan kita
membuat sebuah kondisi logika dengan PHP, dan jika logikanya salah maka tampilkan sebuah link yang
menyatakan bahwa alamat tidak lengkap. Pengiriman pesan ini bisa ditulis sebagai berikut:
proses.php?pesan=alamat+tidak+lengkap.
Ketika user men-klik link tersebut, pada halaman proses.php akan memiliki sebuah variable
$_GET[pesan] yang berisi: alamat tidak lengkap.
Kita bisa memanfaatkan ini untuk berbagai hal, dan dalam tutorial kali ini kita akan menggunakan cara
ini untuk menampilkan pesan kesalahan dari form.

Redirect halaman dengan fungsi header(Location:)


Fungsi header() di dalam PHP digunakan untuk memproses HTTP header. Fungsi header()memiliki
banyak fitur, namun yang akan kita manfaatkan adalah fitur untuk mengirim user ke halaman lain atau
dikenal dengan istilah: redirect.
Untuk mengirim user ke sebuah halaman, kita menggunakan Location:halaman.html sebagai
argumen fungsi header(). Misalkan kita ingin mengirim user ke halaman pendaftaran.html pada
situs duniailkom.com, maka penulisan fungsi header() adalah sebagai berikut:
header("Location: http://www.duniailkom.com/pendaftaran.html")
Halaman yang dituju tidak harus berupa halaman HTML, tetapi juga halaman PHP, atau bahkan file
multimedia seperti gambar. Fitur ini akan kita manfaatkan untuk menampilkan pesan kesalahan form
dalam PHP.

Cara Menampilkan Pesan Kesalahan Form


Dalam tutorial sebelumnya tentang Validasi Form untuk Mencegah Cross-site Scripting dan HTML
injection, kita telah membuat proses validasi form dan menampilkan pesan kesalahan form
206 | P a g e

http://www.duniailkom.com_________________________________________________________
berdasarkan kondisi yang terjadi. Namun pesan kesalahan tersebut hanya ditampilkan pada
halaman proses.php. Jika user ingin mengubah isian form, ia terpaksa kembali
kehalamanform.html untuk memperbaiki kesalahan form tersebut dengan cara mengetik manual
di web browser.
Salah satu fitur pengisian form yang umum digunakan adalah ketika isian form ditemukan kesalahan,
maka user akan dikembalikan ke halaman awal form, beserta pesan kesalahan. Untuk menghasilkan
fitur seperti ini, kita akan memanfaatkan fungsi PHP: header().
Kembali menggunakan halaman form.html dan proses.php yang kita gunakan dalam tutorial-tutorial
sebelumnya, kali ini saya akan memodifikasi halaman proses.php agar bisa memanfaatkan
fungsi header(). Berikut adalah modifikasi file proses.php:
<?php
if (isset($_GET['nama']) AND isset($_GET['email']))
{
$nama=$_GET['nama'];
$email=$_GET['email'];
$nama=htmlspecialchars($nama);
$email=strip_tags($email);
}
else
{
header("Location:form.php?error=variabel_belum_diset");
}
if(empty($nama))
{
header("Location:form.php?error=nama_kosong");
}
else
{
if (is_numeric($nama))
{
header("Location:form.php?error=nama_harus_huruf");
}
else
{
echo "Nama: $nama <br /> Email: $email";
}
}
?>

Dari kode proses.php kita sebelumnya, saya hanya mengubah bagian error menggunakan
fungsiheader(). Namun perhatikan bahwa saya mengirimkan variabel error kepada
halaman form.php, pesan inilah yang akan diproses pada halaman form.php.
Untuk halaman form.html, saya akan mengubah nama file menjadi form.php. Perubahan ini
diperlukan karena pada halaman form.html memerlukan proses PHP untuk menangani variabel error
yang dikirim dari halaman proses.php.
Berikut adalah kode dari halaman form.php:
<?php
//ambil nilai variabel error
if (isset($_GET['error']))
{
$error=$_GET['error'];
}
else
{

207 | P a g e

http://www.duniailkom.com_________________________________________________________
$error="";
}
//siapkan pesan kesalahan
$pesan="";
if ($error=="variabel_belum_diset")
{
$pesan="<h3>Maaf, anda harus mengakses halaman ini dari
form.php</h3>";
}
if ($error=="nama_kosong")
{
$pesan="<h3>Maaf, anda harus mengisi nama</h3>";
}
if ($error=="nama_harus_huruf")
{
$pesan="<h3>Maaf, nama harus berupa huruf</h3>";
}
?>
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/>
<title>Belajar Form PHP</title>
</head>
<body>
<h2>Tutorial Belajar Form HTML - PHP </h2>
<?php
echo $pesan;
?>
<form action="proses.php" method="get">
Nama: <input type="text" name="nama" />
<br />
E-Mail: <input type="text" name="email" />
<br />
<input type="submit" value="Proses Data" >
</form>
</body>
</html>

Pada halaman form.php saya menambahkan beberapa kode PHP di awal halaman. Kode PHP ini
berfungsi untuk menangani variabel error yang dikirimkan dari halaman proses.php.
Setelah memindahkan variabel $_GET[error] ke dalam variabel $error agar mudah diakses,
selanjutnya saya membuat beberapa logika IF untuk memeriksa pesan error, dan memberikan pesan
kesalahan yang ingin ditampilkan kedalam variabel $pesan.
Variabel $pesan ini kemudian akan disisipkan di awal tag form.
Untuk mengujinya, silahkan anda mencoba form.php tersebut dan klik tombol Proses Data tanpa
memberikan input apa-apa di dalam form, dan sekarang pesan kesalahan akan tampil di halaman
form.php.

208 | P a g e

http://www.duniailkom.com_________________________________________________________

Penanganan cara kesalahan form seperti ini membuat form menjadi lebih user friendly. Jika anda
memahami CSS, biasanya pesan kesalahan ini ditampilkan dengan style yang berbeda dari judul form
agar lebih pas, namun dalam tutorial ini anda setidaknya telah mengetahui trik untukmenampilkan
pesan kesalahan form dengan PHP. Silahkan berekplorasi dan menambahkan objek-objek form lain
sebagai bahan latihan.

Tutorial Pemograman Berbasis Objek PHP


Pemograman Berbasis Objek atau Object Oriented Programming (OOP) merupakan standar
pemograman modern saat ini. PHP sebagai bahasa pemograman web paling populer juga memiliki
fitur lengkap dalam pemograman Objek.
Object Oriented Programming (OOP) terkesan sukar dipelajari, namun duniailkom mencoba
menyajikan tutorial lengkap mengenai OOP di dalam PHP. Kita akan mulai mempelajari
pengertianObject, Class, Property dan Method, kemudian akan masuk membahas konsep OOP yang
lebih spesifik seperti encapsulation, inheritance, dan polymorfisme.

Tutorial Belajar OOP PHP: Pemrograman Berbasis Objek PHP


Dalam sesi tutorial PHP kali ini, kita akan membahas salah satu aspek terpenting dalam PHP, yakni
tentang Pemrograman Berbasis Objek (Object Oriented Programming), atau sering disingkat dengan
OOP PHP.

Apa itu Pemrograman Berbasis Objek?

209 | P a g e

http://www.duniailkom.com_________________________________________________________
Object Oriented Programming atau dalam bahasa indonesia diartikan Pemrograman Berbasis Objek,
adalah salah satu cara membuat program (programming paradigm) dengan memecah alur program
menjadi modul-modul sederhana yang disebut dengan objek. Setiap objek akan memiliki fungsi dan
tugas tersendiri. OOP berbeda dengan prosedural programming yang memecah program menjadi
fungsi-fungsi/prosedural.

Pemrograman Berbasis Objek dengan PHP


Saat ini, Object Oriented Programming (OOP) telah menjadi standar dalam dunia pemograman,
termasuk PHP. Walaupun kita bisa membuat program PHP tanpa menggunakan OOP sama sekali,
namun untuk membuat aplikasi real world yang fleksibel, programmer PHP akan beralih
menggunakan OOP.
Jika anda telah menguasai pemrograman PHP dasar seperti tipe data, array, dan fungsi,
mempelajaripemrograman objek PHP adalah langkah berikutnya. Fitur dan desain kode yang
ditawarkan dengan membuat program menggunakan objek akan sangat memudahkan kita dalam
merancang aplikasi website modern dan memiliki fleksibilitas yang tinggi.
Terlebih jika anda memang serius menguasai PHP, memahami pengertian dan cara penggunaan OOP
dalam PHP sangat penting. Aplikasi framework PHP seperti Code Igniter, Yii Framework,
Symfonydan Laravel, semuanya menggunakan OOP.
Duniailkom akan mencoba menyajikan tutorial dasar tentang Object Oriented
Programming atauPemrograman Berbasis Objek PHP. Semoga tutorial ini dapat menjadi bahan
referensi untuk mempelajari pemrograman Objek, khususnya pemrograman Objek dengan PHP.
Berikut adalah index daftar tutorial belajar Pemrograman Berbasis Objek PHP:
Tutorial OOP PHP: Pemrograman Berbasis Objek PHP
Tutorial OOP PHP Part 1: Pengertian Pemrograman Berbasis Objek
Tutorial OOP PHP Part 2: Pengertian Class, Object, Property dan Method
Tutorial OOP PHP Part 3: Cara Membuat dan Mengakses Objek dalam PHP
Tutorial OOP PHP Part 4: Pengertian Enkapsulasi Objek (Public, Protected dan Private)
Tutorial OOP PHP Part 5: Pengertian dan Fungsi Variabel $this dalam Pemrograman Objek
Tutorial OOP PHP Part 6: Cara Penggunaan Pseudo-Variable $this dalam Objek PHP
Tutorial OOP PHP Part 7: Cara Membuat Method dalam Pemrograman Objek PHP
Tutorial OOP PHP Part 8: Pengertian Constructor dan Destructor
Tutorial OOP PHP Part 9: Pengertian Inheritance (Pewarisan)
Tutorial OOP PHP Part 10: Cara Mengakses Property dan Method Parent Class
Tutorial OOP PHP Part 11: Cara Mengakses Constructor dan Destructor Parent Class
Tutorial OOP PHP Part 12: Pengertian Static Property dan Static Method
Tutorial OOP PHP Part 13: Pengertian Konstanta Class dalam Pemrograman Objek
Tutorial OOP PHP Part 14: Pengertian Final Method dan Final Class Pemrograman Objek
Tutorial OOP PHP Part 15: Pengertian Abstract Class dan Abstract Method PHP
Tutorial OOP PHP Part 16: Pengertian Object Interface Dalam Pemrograman Berbasis Objek
Tutorial OOP PHP Part 17: Pengertian Polimorfisme dalam Pemrograman Objek PHP

Tutorial Belajar OOP PHP Part 1: Pengertian Pemrograman


Berbasis Objek
Jika anda telah biasa membuat program secara prosedural, yakni menulis program-program dari baris
pertama sampai dengan baris terakhir secara berurutan, konsep pemrograman berbasis

210 | P a g e

http://www.duniailkom.com_________________________________________________________
objekmungkin sedikit susah dipahami. Dalam tutorial pertama tentang OOP PHP ini, kita akan
membahas pengertian Pengertian Pemrograman Berbasis Objek dalam PHP.

Pengertian Pemrograman Berbasis Objek


Pemrograman Berbasis Objek atau Object Oriented Programming (OOP) adalah sebuah tata cara
pembuatan program (programming paradigm) dengan menggunakan konsep objek yang memiliki
data (atribut yang menjelaskan tentang objek) dan prosedur (function) yang dikenal denganmethod.
(http://en.wikipedia.org/wiki/Object-oriented_programming)
Dalam pengertian sederhananya, OOP adalah konsep pembuatan program dengan memecah
permasalahan program dengan menggunakan objek. Objek dapat diumpamakan dengan fungsi
khusus yang bisa berdiri sendiri. Untuk membuat sebuah aplikasi, berbagai objek akan saling bertukar
data untuk mencapai hasil akhir.
Berbeda dengan konsep fungsi atau function di dalam pemrograman, sebuah objek bisa memiliki
data dan function tersendiri. Setiap objek ditujukan untuk mengerjakan sebuah tugas, dan
menghasilkan nilai akhir untuk selanjutnya dapat ditampilkan atau digunakan oleh objek lain.

Fungsi Pemrograman Berbasis Objek dalam PHP


PHP bukan bahasa pemrograman yang murni berbasis objek seperti Java. Bahkan, konsep OOPdalam
PHP baru hadir dalam PHP versi 4, dan disempurnakan oleh PHP versi 5. Dengan kata lain,OOP di PHP
merupakan fitur tambahan. Anda bisa membuat situs web dengan PHP tanpa menggunakan objek
sama sekali.
Dalam studi pemrograman, pembuatan program dalam PHP tanpa menggunakan objek disebut juga
dengan pemrograman prosedural atau pemrograman fungsional. Dikenal dengan pemrograman
prosedural, karena kita memecah kode program menjadi bagian-bagian atau fungsi-fungsi kecil,
kemudian menyatukannya untuk menghasilkan nilai akhir.
Dengan membuat program secara prosedural, aplikasi bisa dibuat dengan cepat dan mudah dipelajari
jika dibandingkan dengan pemrograman berbasis objek (bagi anda yang pernah mempelajari Java,
tentu telah melewati hal ini :) ). Keuntungan pemrograman berbasis objek baru terasa ketika program
tersebut telah besar atau kita bekerja dengan tim untuk membagi tugas. Konsep objek untuk
memisahkan program menjadi bagian-bagian yang berdiri sendiri akan memudahkan dalam membuat
program.
Saya tidak akan panjang lebar menjelaskan tentang keuntungan atau kerugian menggunakan OOP.
Sebagai programmer web, OOP adalah salah satu makanan wajib. Pembuatan website modern saat
ini akan lebih mudah jika menggunakan template kode program yang dikenal dengan framework.
Daripada kita membuat situs mulai dari awal, menggunakan framework akan mempercepat proses
kerja. Dan, framework PHP hampir semuanya dibuat menggunakan OOP.
Dalam tutorial pertama tentang OOP PHP ini, kita telah mempelajari tentang pengertian
pemrograman berbasis objek. Dalam tutorial selanjutnya, kita akan mempelajari tentang pengertian
class, object, property dan method dalam PHP.
Tutorial Belajar OOP PHP Part 2: Pengertian Class, Object, Property dan Method
Pemrograman berbasis objek tidak hanya berisi object. Dalam tutorial belajar OOP PHP kali ini kita
akan membahas tentang pengertian class, object, property dan method. Keempat keyword inilah
yang menjadi pondasi dasar dari Pemrograman Berbasis Objek. Selain pengertian, kita juga akan
mempelajari cara penulisannya dengan PHP.

211 | P a g e

http://www.duniailkom.com_________________________________________________________

Pengertian Class dalam Pemrograman Berbasis Objek


Class adalah cetak biru atau blueprint dari object. Class digunakan hanya untuk membuat kerangka
dasar. Yang akan kita pakai nantinya adalah hasil cetakan dari class, yakni object.
Sebagai analogi, class bisa diibaratkan dengan laptop atau notebook. Kita tahu bahwa laptopmemiliki
ciri-ciri seperti merk, memiliki keyboard, memiliki processor, dan beberapa ciri khas lain yang
menyatakan sebuah benda tersebut adalah laptop. Selain memiliki ciri-ciri, sebuah laptop juga bisa
dikenakan tindakan, seperti: menghidupkan laptop atau mematikan laptop.
Class dalam analogi ini adalah gambaran umum tentang sebuah benda. Di dalam pemrograman
nantinya, contoh class seperti: koneksi_database dan profile_user.
Di dalam PHP, penulisan class diawali dengan keyword class, kemudian diikuti dengan nama dari class.
Aturan penulisan nama class sama seperti aturan penulisan variabel dalam PHP, yakni diawali dengan
huruf atau underscore untuk karakter pertama, kemudian boleh diikuti dengan huruf, underscore atau
angka untuk karakter kedua dan selanjutnya. Isi dari class berada dalam tanda kurung kurawal.
Berikut adalah contoh penulisan class dalam PHP:
<?php
class laptop {
// isi dari class laptop...
}
?>

Pengertian Property dalam Pemrograman Berbasis Objek


Property (atau disebut juga dengan atribut) adalah data yang terdapat dalam sebuah class.
Melanjutkan analogi tentang laptop, property dari laptop bisa berupa merk, warna, jenis processor,
ukuran layar, dan lain-lain.
Jika anda sudah terbiasa dengan program PHP, property ini sebenarnya hanyalah variabel yang
terletak di dalam class. Seluruh aturan dan tipe data yang biasa diinput kedalam variabel, bisa juga
diinput kedalam property. Aturan tata cara penamaan property sama dengan aturan
penamaanvariabel.
Berikut adalah contoh penulisan class dengan penambahan property:
<?php
class laptop {
var $pemilik;
var $merk;
var $ukuran_layar;
// lanjutan isi dari class laptop...
}
?>

Dari contoh diatas, $merk, $ukuran_layar dan $jenis_processor adalah property dari class laptop.
Seperti yang kita lihat, penulisan property di dalam PHP sama dengan cara penulisan variabel, yakni
menggunakan tanda dollar ($). Sebuah class tidak harus memiliki property.

Pengertian Method dalam Pemrograman Berbasis Objek


212 | P a g e

http://www.duniailkom.com_________________________________________________________
Method adalah tindakan yang bisa dilakukan didalam class. Jika menggunakan analogi class
laptopkita, maka contoh method adalah: menghidupkan laptop, mematikan laptop, mengganti
cover laptop, dan berbagai tindakan lain.
Method pada dasarnya adalah function yang berada di dalam class. Seluruh fungsi dan sifat function
bisa diterapkan kedalam method, seperti argumen/parameter, mengembalikan nilai (dengan
keyword return), dan lain-lain.
Berikut adalah contoh penulisan class dengan penambahan method:
<?php
class laptop {
function hidupkan_laptop() {
//... isi dari method hidupkan_laptop
}
function matikan_laptop() {
//... isi dari method matikan_laptop
}
... //isi dari class laptop
}
?>

Dari contoh diatas, function hidupkan_laptop() dan function matikan_laptop() adalah method dari
class laptop. Seperti yang kita lihat, bahwa penulisan method di dalam PHP sama dengan cara
penulisan function. Sebuah class tidak harus memiliki method.

Pengertian Object dalam Pemrograman Berbasis Objek


Object atau Objek adalah hasil cetak dari class, atau hasil konkrit dari class. Jika menggunakan
analogi class laptop, maka objek dari class laptop bisa berupa: laptop_andi, laptop_anto,
laptop_duniailkom, dan lain-lain. Objek dari class laptop akan memiliki seluruh ciri-ciri laptop,
yaituproperty dan method-nya.
Proses mencetak objek dari class ini disebut dengan instansiasi (atau instantiation dalam
bahasainggris). Pada PHP, proses instansiasi dilakukan dengan menggunakan keyword new. Hasil
cetakanclass akan disimpan dalam variabel untuk selanjutnya digunakan dalam proses program.
Sebagai contoh, berikut adalah cara membuat objek laptop_andi dan laptop_anto yang dibuat
dariclass laptop:
<?php
class laptop {
//... isi dari class laptop
}
$laptop_andi = new laptop();
$laptop_anto = new laptop();
?>

Dari contoh diatas, $laptop_andi dan $laptop_anto merupakan objek dari class laptop. Kedua objek
ini akan memiliki seluruh property dan method yang telah dirancang dari class laptop.
Dalam tutorial kali ini kita telah membahas tentang pengertian dan cara penggunaan class, property,
method, dan object. Dalam tutorial OOP PHP berikutnya kita akan membahas lebih dalam tentang cara
membuat dan mengakses objek dalam PHP.

213 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial Belajar OOP PHP Part 3: Cara Membuat dan Mengakses


Objek dalam PHP
Melanjutkan tutorial belajar Objek Oriented Programming (OOP) PHP, jika sebelumnya kita telah
mempelajari Pengertian Class, Object, Property dan Method, kali ini kita akan membahas Cara
Membuat dan Mengakses Objek dalam PHP.

Cara Membuat Objek dalam PHP


Istilah Objek dalam Objek Oriented Programming (OOP), sebenarnya terdiri dari class, property,
method dan object. Keempat istilah ini telah kita pelajari dalam tutorial sebelumnya. Merangkum apa
yang telah kita pelajari, berikut adalah contoh cara pembuatan objek di dalam PHP:
<?php
// buat class laptop
class laptop {
// buat property untuk class laptop
var $pemilik;
var $merk;
var $ukuran_layar;
// buat method untuk class laptop
function hidupkan_laptop() {
return "Hidupkan Laptop";
}
function matikan_laptop() {
return "Matikan Laptop";
}
}
// buat objek dari class laptop (instansiasi)
$laptop_anto = new laptop();
?>

Dalam kode diatas, kita telah membuat sebuah class dengan nama laptop, lengkap dengan property
dan menthod-nya. Kemudian saya membuat 1 buah objek dari class laptop dengan nama
$laptop_anto pada baris terakhir.
Walaupun dalam kode diatas kita telah membuat objek, objek tersebut belum menampilkan apa-apa,
karena class laptop belum berisi data apapun. Kita akan segera mempelajari cara mengakses isi
dari class dalam PHP.

214 | P a g e

http://www.duniailkom.com_________________________________________________________

Cara Mengakses Objek dalam PHP


Cara mengakses objek yang saya maksud sebenarnya adalah cara untuk mengakses isi dari
sebuahobjek, yakni property dan method-nya. Agar lebih mudah dipahami, berikut adalah revisi
contohclass laptop sebelumnya:
<?php
// buat class laptop
class laptop {
// buat property untuk class laptop
var $pemilik;
var $merk;
var $ukuran_layar;
// buat method untuk class laptop
function hidupkan_laptop() {
return "Hidupkan Laptop";
}
function matikan_laptop() {
return "Matikan Laptop";
}
}
// buat objek dari class laptop (instansiasi)
$laptop_anto = new laptop();
// set property
$laptop_anto->pemilik="Anto";
$laptop_anto->merk="Asus";
$laptop_anto->ukuran_layar="15 inchi";
// tampilkan property
echo $laptop_anto->pemilik;
echo "<br />";
echo $laptop_anto->merk;
echo "<br />";
echo $laptop_anto->ukuran_layar;
echo "<br />";
// tampilkan method
echo $laptop_anto->hidupkan_laptop();
echo "<br />";
echo $laptop_anto->matikan_laptop();
?>

Jika anda menjalankan kode program di atas, berikut adalah hasil yang didapat:
Anto
Asus
15 inchi
Hidupkan Laptop
Matikan Laptop

Mari kita bahas kode program diatas:


class laptop {

Baris awal contoh kode program kita adalah pendefenisian sebuah class dengan nama laptop. Kurung
kurawal menandakan awal dari class.

215 | P a g e

http://www.duniailkom.com_________________________________________________________
var $pemilik;
var $merk;
var $ukuran_layar;

Selanjutnya, tiga baris diatas merupakan pendefenisian variabel class, atau dikenal dengan
property. Property tidak lain hanya variabel biasa yang berada di dalam class. Keyword var digunakan
untuk deklarasi variabel di dalam class.

function hidupkan_laptop() {
return "Hidupkan Laptop";
}
function matikan_laptop() {
return "Matikan Laptop";
}

2 buah fungsi diatas adalah method dari class. Jika anda telah mengenal cara pembuatan function,
kedua contoh ini hanyalah fungsi biasa yang akan mengembalikan nilai berupa string. Pembahasan
tentang cara penggunaan function di dalam PHP pernah kita bahas pada Tutorial PHP Cara Penulisan
dan Pembuatan Fungsi PHP.
$laptop_anto = new laptop();

Baris ini merupakan perintah untuk pembuatan objek dari class laptop (dikenal dengan
prosesinstansiasi). Variabel $laptop_anto saat ini berisi objek dari class laptop. Kita akan
mengaksesproperty dan method class laptop melalui objek $laptop_anto ini.
$laptop_anto->pemilik="Anto";
$laptop_anto->merk="Asus";
$laptop_anto->ukuran_layar="15 inchi";

3 baris diatas adalah cara untuk men-set nilai kedalam property dari objek $laptop_anto. Perhatikan
bahwa kita menggunakan tanda panah (->) untuk mengakses property dari objek. Tanda panah ini
adalah operator khusus objek yang dikenal dengan istilah Object Operator. Penulisan
nama propertyjuga dilakukan tanpa menggunakan tanda $, sehingga property $pemilik, diakses
dengan:
$laptop_anto->pemilik.
echo
echo
echo
echo
echo
echo

$laptop_anto->pemilik;
"<br />";
$laptop_anto->merk;
"<br />";
$laptop_anto->ukuran_layar;
"<br />";

Kode program diatas digunakan untuk menampilkan nilai property dari objek $laptop_anto yang
sebelumnya telah di-set nilainya. Sama seperti pada saat men-set nilai property, kita juga
menggunakan tanda panah (->), kemudian diikuti nama property tanpa tanda $.

216 | P a g e

http://www.duniailkom.com_________________________________________________________
Perintah echo ditambahkan agar PHP menampilkan nilai property ke dalam web browser. Agar
tampilan di web browser lebih rapi, saya menambahkan echo <br /> diantara hasil tampilanproperty.
echo $laptop_anto->hidupkan_laptop();
echo "<br />";
echo $laptop_anto->matikan_laptop();

Kode terakhir dari contoh kita kali ini adalah cara pemanggilan method dari objek $laptop_anto. Cara
pengaksesannya sama dengan cara mengakses property, namun karena method adalah fungsi, kita
menambahkan tanda kurung diakhir pemanggilan fungsi.

Objek Sebagai Entitas Terpisah


Dalam contoh kode diatas, saya hanya menggunakan 1 buah objek yang berasal dari class laptop.
Namun pada dasarnya sebuah class bisa digunakan untuk membuat berapapun banyak objek. Setiap
objek merupakan bagian terpisah, namun tetap memiliki property dan method yang berasal
dari class laptop.
Berikut adalah contoh pembuatan beberapa objek dari class laptop:
<?php
// buat class laptop
class laptop {
// buat property untuk class laptop
var $pemilik;
// buat method untuk class laptop
function hidupkan_laptop() {
return "Hidupkan Laptop";
}
}
// buat objek dari
$laptop_anto = new
$laptop_andi = new
$laptop_dina = new

class laptop (instansiasi)


laptop();
laptop();
laptop();

// set property
$laptop_anto->pemilik="Anto";
$laptop_andi->pemilik="Andi";
$laptop_dina->pemilik="Dina";
// tampilkan property
echo $laptop_anto->pemilik; // Anto
echo "<br />";
echo $laptop_andi->pemilik; // Andi
echo "<br />";
echo $laptop_dina->pemilik; // Dina
echo "<br />";
?>

Class laptop diatas saya sederhanakan agar lebih singkat. Setelah pembuatan class, saya kemudian
membuat 3 buah objek dari class laptop, yakni $laptop_anto, $laptop_andi dan $laptop_dina. Ketiga
objek ini memiliki struktur yang sama (sama-sama berasal dari class laptop), namun memiliki isi data
yang berbeda-beda.
Agar
lebih
paham,
silahkan
anda
mencoba
menambahkan
beberapa property dan method untukclass laptop diatas.
217 | P a g e

http://www.duniailkom.com_________________________________________________________

Dalam tutorial kali ini kita telah membahas tentang Cara Membuat dan Mengakses Objek dalam PHP.
Sampai disini semoga anda telah memahami konsep class, property, method dan objek. Dalamtutorial
belajar OOP PHP berikutnya, kita akan membahas tentang pengertian enkapsulasi dalam
pemrograman objek.

Tutorial Belajar OOP PHP Part 4: Pengertian Enkapsulasi Objek


(Public, Protected dan Private)
Setelah memahami cara membuat dan mengakses objek dalam PHP, dalam tutorial kali ini kita akan
membahas salah satu aspek terpenting dalam Pemrograman Berbasis Objek (OOP), yakni
Enkapsulasi (bahasa inggris: Encapsulation). Proses enkapsulasi diterapkan dengan menggunakan 3
jenis hak akses: Public, Protected dan Private.
Kita akan mempelajari Pengertian Enkapsulasi (Public, Protected dan Private) dalam PHP.

Pengertian Enkapsulasi (Encapsulation)


Enkapsulasi (encapsulation) adalah sebuah metoda untuk mengatur struktur class dengan cara
menyembunyikan alur kerja dari class tersebut.
Struktur class yang dimaksud adalah property dan method. Dengan enkapsulasi, kita bisa membuat
pembatasan akses kepada property dan method, sehingga hanya property dan method tertentu saja
yang bisa diakses dari luar class. Enkapsulasi juga dikenal dengan istilah information hiding.
Dengan enkapsulasi, kita bisa memilih property dan method apa saja yang boleh diakses, dan mana
yang
tidak
boleh
diakses.
Dengan
menghalangi
kode
program
lain
untuk
mengubah propertytertentu, class menjadi lebih terintegrasi, dan menghindari kesalahan ketika
seseorang
mencoba
mengubahnya.
Programmer
yang
merancang
class
bisa
menyediakan property dan method khusus yang memang ditujukan untuk diakses dari luar.
Melanjutkan analogi tentang class laptop, perusahaan pembuat laptop telah menyediakan
methodkhusus untuk menghidupkan laptop, yakni dengan cara menekan tombol on. Di dalam laptop
sendiri, banyak method-method lain yang akan dijalankan ketika kita menyalakan laptop, contohnya:
mengirim sinyal booting ke processor, mengirim data dari processor ke memory, dan mengirim sinyal
listrik ke LED di monitor. Akan tetapi, proses ini adalah method internal laptop dimana kita tidak perlu
memahaminya untuk menghidupkan laptop.

Enkapsulasi Objek: Public, Protected dan Private


Untuk membatasi hak akses kepada property dan method di dalam sebuah class, Objek Oriented
Programming menyediakan 3 kata kunci, yakni Public, Protected dan Private. Kata kunci ini diletakkan
sebelum nama property atau sebelum nama method. Berikut adalah pembahasannya:
Pengertian Hak Akses: Public
Ketika sebuah property atau method dinyatakan sebagai public, maka seluruh kode program di luar
class
bisa
mengaksesnya,
termasuk
class
turunan.
Berikut
adalah
contoh
penulisan public propertydan public method dalam PHP:
<?php
// buat class laptop
class laptop {
// buat public property

218 | P a g e

http://www.duniailkom.com_________________________________________________________
public $pemilik;
// buat public method
public function hidupkan_laptop() {
return "Hidupkan Laptop";
}
}
// buat objek dari class laptop (instansiasi)
$laptop_anto = new laptop();
// set property
$laptop_anto->pemilik="Anto";
// tampilkan property
echo $laptop_anto->pemilik; // Anto
// tampilkan method
echo $laptop_anto->hidupkan_laptop(); // "Hidupkan Laptop"
?>

Perhatikan penambahan kata public sebelum nama property dan nama method. Kode diatas pada
dasarnya sama dengan contoh class laptop kita dalam tutorial sebelum ini.
Jika hak akses property dan method tidak ditulis, maka PHP menganggapnya sebagai public.

Pengertian Hak Akses: Protected


Jika sebuah property atau method dinyatakan sebagai protected, berarti property atau method
tersebut tidak bisa diakses dari luar class, namun bisa diakses oleh class itu sendiri atau turunan class
tersebut.
Apabila kita mencoba mengakses protected property atau protected method dari luar class, akan
menghasilkan error, seperti contoh berikut ini:
<?php
// buat class laptop
class laptop {
// buat protected property
protected $pemilik;
// buat protected method
protected function hidupkan_laptop() {

219 | P a g e

http://www.duniailkom.com_________________________________________________________
return "Hidupkan Laptop";
}
}
// buat objek dari class laptop (instansiasi)
$laptop_anto = new laptop();
// set protected property akan menghasilkan error
$laptop_anto->pemilik="Anto";
// Fatal error: Cannot access protected property laptop::$pemilik
// tampilkan protected property akan menghasilkan error
echo $laptop_anto->pemilik;
// Fatal error: Cannot access protected property laptop::$pemilik
// jalankan protected method akan menghasilkan error
echo $laptop_anto->hidupkan_laptop();
// Fatal error: Call to protected method laptop::hidupkan_laptop()
// from context
?>

Dalam contoh diatas, pemanggilan property $pemilik dan method hidupkan_laptop() dari luar class
akan menghasilkan error.
Walaupun akses level protected tidak bisa diakses dari luar class, namun bisa diakses dari dalam class
itu sendiri, berikut adalah contohnya:
<?php
// buat class laptop
class laptop {
// buat protected property
protected $pemilik="Anto";
public function akses_pemilik() {
return $this->pemilik;
}
protected function hidupkan_laptop() {
return "Hidupkan Laptop";
}
public function paksa_hidup() {
return $this->hidupkan_laptop();
}
}
// buat objek dari class laptop (instansiasi)
$laptop_anto = new laptop();
// jalankan method akses_pemilik()
echo $laptop_anto->akses_pemilik(); // "Anto"
// jalankan method paksa_hidup()
echo $laptop_anto->paksa_hidup(); // "Hidupkan Laptop"
?>

Hampir sama dengan contoh kita sebelumnya, property $pemilik di deklarasikan sebagai protected,
sehingga pengaksesan dari luar class akan menghasilkan error. Oleh karena itu, saya membuat
sebuah public method yang akan menampilkan hasil property $pemilik, yakni methodakses_pemilik().

220 | P a g e

http://www.duniailkom.com_________________________________________________________
Begitu juga dengan method hidupkan_laptop() yang tidak bisa diakses secara langsung. Saya
menambahkan method paksa_hidup() yang secara internal akan mengakses method
hidupkan_laptop().

Selain dari dalam class itu sendiri, property dan method dengan hak akses protected juga bisa
diakses dari class turunan (Kita akan membahas tentang penurunan class dalam tutorial lain):
<?php
// buat class komputer
class komputer{
// property dengan hak akses protected
protected $jenis_processor = "Intel Core i7-4790 3.6Ghz";
}
// buat class laptop
class laptop extends komputer{
public function tampilkan_processor() {
return $this->jenis_processor;
}
}
// buat objek dari class laptop (instansiasi)
$laptop_baru = new laptop();
// jalankan method
echo $laptop_baru->tampilkan_processor(); // "Intel Core i7-4790
3.6Ghz"
?>

Pada kode diatas, walaupun method $jenis_processor di set sebagai protected pada class komputer,
tetapi masih bisa diakses dari class laptop yang merupakan turunan dari class komputer.

Pengertian Hak Akses: Private


Hak akses terakhir dalam konsep enkapsulasi adalah private. Jika sebuah property atau method diset sebagai private, maka satu-satunya yang bisa mengakses adalah class itu sendiri. Class lain tidak
bisa mengaksesnya, termasuk class turunan.
Sebagai contoh, berikut adalah hasil yang di dapat jika kita mengakses property dan method dengan
level private:
<?php
// buat class komputer
class komputer {
// property dengan hak akses protected
private $jenis_processor = "Intel Core i7-4790 3.6Ghz";
public function tampilkan_processor() {
return $this->jenis_processor;
}
}

221 | P a g e

http://www.duniailkom.com_________________________________________________________

// buat class laptop


class laptop extends komputer{
public function tampilkan_processor() {
return $this->jenis_processor;
}
}
// buat objek dari class laptop (instansiasi)
$komputer_baru = new komputer();
$laptop_baru = new laptop();
// jalankan method dari class komputer
echo $komputer_baru->tampilkan_processor(); // "Intel Core i7-4790
3.6Ghz"
// jalankan method dari class laptop (error)
echo $laptop_baru->tampilkan_processor();
// Notice: Undefined property: laptop::$jenis_processor
?>

Dalam kode diatas, saya membuat 2 buah class, yakni class komputer, dan class laptop. Class laptop
merupakan turunan dari class komputer.Di dalam class komputer terdapat property $jenis_processor
dengan akses level private. Di dalam class komputer dan class laptop, saya membuat method
tampilkan_processor() yang digunakan untuk mengakses property $jenis_processor.
Pengaksesan method tampilkan_processor() dari objek $komputer_baru sukse ditampilkan karena
berada di dalam satu class dimana property $jenis_processor berada.
Akan tetapi, jika method tampilkan_processor() diakses dari objek $laptop_baru yang merupakan
turunan dari class komputer, PHP akan mengeluarkan error karena property $jenis_processor tidak
dikenal.
Akses level private sering digunakan untuk menyembunyikan property dan method agar tidak bisa
diakses di luar class.
Dalam tutorial kali ini, kita telah membahas tentang pengertian enkapsulasi dalam objek oriented
programming (OOP), mengenal 3 hak akses: public, protected, dan private, serta melihat contoh cara
penggunaannya di dalam PHP.
Dalam tutorial belajar OOP PHP berikutnya, kita akan membahas tentang pengertian dan fungsi
variabel $this dalam PHP.

Tutorial Belajar OOP PHP Part 5: Pengertian dan Fungsi Variabel


$this dalam Pemrograman Objek
Setelah dalam tutorial OOP PHP sebelumnya kita mempelajari tentang Pengertian Enkapsulasi Objek
(Public, Protected dan Private), dalam tutorial kali ini kita akan membahas Pengertian dan Fungsi
Variabel $this dalam Object Oriented Programming PHP.

Pengertian dan Fungsi Variabel $this dalam OOP


Variabel $this adalah sebuah variabel khusus dalam OOP PHP yang digunakan sebagai penunjuk
kepada objek, ketika kita mengaksesnya dari dalam class. Dalam manual PHP, $this disebut dengan
istilah: pseudo-variable.

222 | P a g e

http://www.duniailkom.com_________________________________________________________

Untuk lebih memudahkan pemahaman, kita akan bahas menggunakan contoh.


Berikut adalah class laptop dengan beberapa property dan method.
<?php
// buat class laptop
class laptop {
// buat property untuk class laptop
public $pemilik;
public $merk;
public $ukuran_layar;
// buat method untuk class laptop
public function hidupkan_laptop() {
return "Hidupkan Laptop";
}
public function matikan_laptop() {
return "Matikan Laptop";
}
}
// buat objek dari class laptop (instansiasi)
$laptop_anto = new laptop();
$laptop_andi = new laptop();
?>

Dalam kode diatas, saya membuat class laptop dengan 3 property, yakni: $pemilik,
$merk dan$ukuran_layar. Ketiga property ini belum memiliki nilai. Di dalam class laptop juga terdapat
2 buahmethod, yakni hidupkan_laptop() dan matikan_laptop(), kedua method ini akan
mengembalikan nilai string. Seluruh property dan method dari class laptop memiliki hak akses public,
sehingga bisa diakses dari luar class.
Setelah membuat class, saya kemudian men-instansiasi-nya kedalam 2 buah
objek $laptop_anto dan$laptop_andi.
Jika anda menjalankan kode program diatas, di dalam web browser belum tampil apa-apa, karena saya
belum memanggil method atau property apapun dari kedua objek.
Selanjutnya, saya ingin menambahkan isi property $pemilik kepada kedua objek, berikut adalah kode
yang diperlukan:
$laptop_anto->pemilik = "Anto";
$laptop_andi->pemilik = "Andi";

Dengan perintah diatas, property $pemilik pada masing-masing objek telah berisi nilai. Untuk
menampilkan nilai dari objek tersebut, kita tinggal mengaksesnya dengan kode berikut:
echo $laptop_anto->pemilik; // Anto

Sampai disini, kita telah memahami cara mengakses property objek dari objek itu sendiri, yakni dengan
menggunakan format:
$nama_objek->nama_property

Bagaimana jika property tersebut telah di-set nilainya dari dalam class? Berikut adalah
perubahanclass laptop:
<?php

223 | P a g e

http://www.duniailkom.com_________________________________________________________
// buat class laptop
class laptop {
// buat property untuk class laptop
public $pemilik="Andi";
// buat method untuk class laptop
public function hidupkan_laptop() {
return "Hidupkan Laptop";
}
}
// buat objek dari class laptop (instansiasi)
$laptop_baru = new laptop();
$laptop_lama = new laptop();
?>

Class laptop diatas saya revisi sehingga hanya memiliki 1 property dan 1 method. Perhaatikan bahwa
property $pemilik telah diisi pada level class, sehingga pada saat pembuatan objek (instansiasi),
seluruh objek akan memiliki nilai ini.
Objek $laptop_baru dan $laptop_lama sama-sama berasal dari class laptop, dan nilai property
$pemilik sama- sama berisi Andi.
echo $laptop_baru->pemilik; // Andi
echo $laptop_lama->pemilik; // Andi

Lebih jauh lagi, pemanggilan method juga akan menghasilkan nilai yang sama:
echo $laptop_baru->hidupkan_laptop(); // "Hidupkan Laptop"
echo $laptop_lama->hidupkan_laptop(); // "Hidupkan Laptop"

Jika anda masih bersama saya :), kita akan masuk kedalam bagian terpenting. Bagaimana jika saya
ingin ketika method hidupkan_laptop() dipanggil, yang akan ditampilkan adalah : Hidupkan Laptop
Andi?
Jika anda telah mempelajari dasar-dasar PHP, tentunya cara paling jelas adalah dengan
mengubahreturn string di dalam method hidupkan_laptop() sebagai berikut:
public function hidupkan_laptop() {
return "Hidupkan Laptop Andi";
}

Cara tersebut tidak salah, dan akan menghasilkan nilai Hidupkan Laptop Andi pada saat pemanggilan
method hidupkan_laptop(). Tetapi, bukankah kita telah memiliki property $pemilik dengan nilai
Andi? kita bisa menggunakan property ini dan menambahkannya ke dalam method
hidupkan_laptop.
Untuk mencoba ide tersebut, silahkan ubah contoh class laptop sebelumnya menjadi berikut:
<?php
// buat class laptop
class laptop {
// buat property untuk class laptop
public $pemilik="Andi";
public $merk;
// buat method untuk class laptop
public function hidupkan_laptop() {
return "Hidupkan Laptop $pemilik";
}
}
// buat objek dari class laptop (instansiasi)

224 | P a g e

http://www.duniailkom.com_________________________________________________________
$laptop_baru = new laptop();
echo $laptop_baru->hidupkan_laptop(); // "Hidupkan Laptop"
?>

Jika anda menjalankan kode diatas, hasil yang didapat adalah:


Notice: Undefined variable: pemilik in
D:\xampp\htdocs\oop_php\belajar_objek.php on line 11 Hidupkan Laptop

Dari penjelasan error PHP, dinyatakan bahwa variabel pemilik tidak terdefinisi pada baris 11. Baris
tersebut adalah baris dimana kita menampilkan Hidupkan Laptop $pemilik dengan method
hidupkan_laptop().
Apa yang terjadi? Bukankah $pemilik=Andi telah terdefenisi pada property class?
Inilah yang dimaksud dalam awal tutorial kali ini, kita sedang mencoba mengakses property objek dari
dalam class. Jika anda bingung dengan pengertian ini, anda tidak sendiri. Saya juga kesulitan dalam
memahami konsep ini pada pertama kali belajar OOP.
Untuk memahaminya, kita harus ingat bahwa class hanyalah sebuah blue print atau kerangka.
Seluruh property dan method nantinya akan diakses dari dalam objek, bukan dari dalam class. Pada
saat proses instansiasi class, seluruh property dan method akan dicopy kedalam objek.
Perintah:
$laptop_baru
=
new
laptop()
akan
membuat objek $laptop_baru memiliki property $pemilik dan method hidupkan_laptop() (sesuai
dengan kerangka dari class laptop). Seluruh perintah lanjutan yang kita lakukan berada di dalam
objek $laptop_baru, bukan di dalam class laptop.
Ketika kita menjalankan method hidupkan_laptop(), objek $laptop_baru akan menemui baris
perintah:
Hidupkan Laptop $pemilik

variabel $pemilik disini tidak terdefenisi karena $pemilik berada di dalam konteks class, bukan objek.
Untuk mengatasi masalah ini, kita harus mengubah defenisi method hidupkan_laptop() menjadi:
"Hidupkan Laptop $this->pemilik";

Variabel $this merujuk kepada objek yang sedang menginstansiasi class.


Jika di dalam class laptop kita membuat:
"Hidupkan Laptop $this->pemilik";

Maka di dalam objek $laptop_baru, akan menjadi:


"Hidupkan Laptop $laptop_baru->pemilik";

Jika kita memiliki objek lain misalkan $laptop_lama, maka perintah tersebut akan dijalankan menjadi:
"Hidupkan Laptop $laptop_lama->pemilik";

Perhatikan bahwa pada level objek, variabel $this dijalankan menjadi objek saat ini.
Untuk menguji pemahaman kita, silahkan pelajari kode berikut ini:
<?php
// buat class laptop
class laptop {
// buat property untuk class laptop
public $pemilik="Andi";
// buat method untuk class laptop
public function hidupkan_laptop() {
return "Hidupkan Laptop $this->pemilik";
}
}

225 | P a g e

http://www.duniailkom.com_________________________________________________________

// buat objek dari class laptop (instansiasi)


$laptop_baru = new laptop();
echo $laptop_baru->hidupkan_laptop(); // "Hidupkan Laptop Andi";
//ubah isi property $pemilik pada objek $laptop_baru
$laptop_baru->pemilik="Arie";
echo $laptop_baru->hidupkan_laptop(); // "Hidupkan Laptop Arie";
// buat objek baru dari class laptop dan panggil hidupkan_laptop()
$laptop_lama = new laptop();
echo $laptop_lama->hidupkan_laptop();
?>

Tanpa menjalani kode program tersebut, silahkan tebak apa hasil yang akan ditampilkan dari
perintah: echo $laptop_lama->hidupkan_laptop() yang berada pada baris terakhir, dan kenapa
hasilnya bukan Hidupkan Laptop Arie ?
Jika anda bisa menebak hasil akhir dengan benar dan bisa menjelaskan kenapa hasilnya
bukanHidupkan Laptop Arie, maka anda telah memahami salah satu konsep terpenting dalam
Pemrograman berbasis objek.
Jika di dalam tutorial kali ini kita membahas pengertian dan fungsi variabel $this, dalam tutorial
berikutnya kita akan membahas variabel $this secara lebih jauh, dan melihat cara penggunaan
pseudo-variable $this dalam pemrograman objek PHP.

Tutorial Belajar OOP PHP Part 6: Cara Penggunaan PseudoVariable $this dalam Objek PHP
Jika dalam tutorial sebelumnya kita telah memahami pengertian dan fungsi dari variabel $this, dalam
tutorial kali ini saya akan membahas cara penggunaan pseudo-variable $this dalam pemrograman
Objek PHP. Tutorial kali ini hanya untuk memperjelas konsep variabel $this yang telah kita pelajari
sebelumnya.

Arti Pseudo-Variable $this dalam Pemrograman Objek PHP


Melanjutkan tutorial mengenai variabel $this, kali ini kita akan melihat cara penggunaannya melalui
contoh program PHP yang lebih lengkap.
Dalam contoh berikut, saya membuat class laptop dengan method yang saling memanggil method lain
menggunakan variabel $this, silahkan anda pahami alur kerja dari class dan objek dibawah ini:
<?php
// buat class laptop
class laptop {
// buat property untuk class laptop
public $pemilik;
public $merk;
// buat method untuk class laptop
public function hidupkan_laptop() {
return "Hidupkan Laptop $this->merk punya $this->pemilik";
}

226 | P a g e

http://www.duniailkom.com_________________________________________________________
public function matikan_laptop() {
return "Matikan Laptop $this->merk punya $this->pemilik";
}
public function restart_laptop() {
$matikan=$this->matikan_laptop();
$hidupkan= $this->hidupkan_laptop();
$restart=$matikan."<br />".$hidupkan;
return $restart;
}
}
// buat objek dari class laptop (instansiasi)
$laptop_anto = new laptop();
// isi property objek
$laptop_anto->pemilik="Anto";
$laptop_anto->merk="Asus";
echo $laptop_anto->hidupkan_laptop();
// hasil: "Hidupkan Laptop Asus punya Anto";
echo "<br />";
echo $laptop_anto->matikan_laptop();
// hasil: "Matikan Laptop Asus punya Anto";
echo "<br />";
echo $laptop_anto->restart_laptop();
// hasil:
// "Matikan Laptop Asus punya Anto";
// "Hidupkan Laptop Asus punya Anto";
?>

Contoh class laptop diatas, mirip dengan contoh-contoh kita sebelumnya, dengan beberapa
modifikasi. Saya membuat 2 property: $pemilik dan $merk, kemudian membuat 3 method:
hidupkan_laptop(), matikan_laptop(), dan restart_laptop().
Dalam method hidupkan_laptop(), dan saya memanggil property $pemilik dan $merk. Karena
property ini nantinya akan dipanggil dari objek, maka kita harus menggunakan variabel $this:
"Hidupkan Laptop $this->merk punya $this->pemilik";

Variabel $this nantinya akan merujuk kepada objek yang memanggil method. Misalkan kita
memiliki objek $laptop_anto, maka hasil yang dijalankan adalah:
"Hidupkan Laptop $laptop_anto ->merk punya $laptop_anto->pemilik";

Method matikan_laptop() juga menggunakan pola perintah yang sama.


Untuk method restart_laptop(), di dalam struktur method ini saya memanggil method
matikan_laptop() dan hidupkan_laptop(). Karena alasan yang sama dengan property $pemilik dan
$merk, saya juga menggunakan variabel $this untuk memanggil method. Hasil pemanggilan kedua
method, kemudian disambung dan disimpan kedalam variabel $hasil.
public function restart_laptop() {
$matikan=$this->matikan_laptop();
$hidupkan= $this->hidupkan_laptop();
$restart=$matikan."<br />".$hidupkan;
return $restart;
}

227 | P a g e

http://www.duniailkom.com_________________________________________________________

Tutorial kali ini ditujukan untuk melengkapi pemahaman variabel $this dari tutorial sebelumnya.
Dalam tutorial OOP PHP selanjutnya, kita akan membahas cara membuat method dalam
pemrograman objek PHP.

Tutorial Belajar OOP PHP Part 7: Cara Membuat Method dalam


Pemrograman Objek PHP
Setelah memahami arti dan fungsi variabel $this dalam 2 tutorial sebelumnya, dalam sesi tutorial
belajar OOP PHP kali ini, kita akan mempelajari lebih dalam tentang cara membuat method di dalam
pemrograman objek PHP. Method di dalam PHP juga bisa ditambahkan dengan argumen/parameter
seperti layaknya function.

Cara Membuat Method dengan Argumen/Parameter


Karena method pada dasarnya hanyalah function yang berada di dalam sebuah class, maka kita bisa
memberikan argumen/parameter ke dalam method tersebut.

Langsung saja kita lihat struktur dasar pembuatan parameter di dalam method PHP:
hak_akses nama_method ($argumen1, argumen2, dst...)
{
//... isi dari method
}

Dengan menggunakan contoh method hidupkan_laptop(), kita bisa membuatnya menjadi:


public hidupkan_laptop($pemilik, $merk)
{
//... isi dari method
}

Sehingga apabila metod itu dipanggil dari objek, kita tinggal mengisi argumen dengan nilai yang
diinginkan, seperti contoh berikut:
$laptop_andi(Andi,Lenovo);

Cara Membuat Argumen dalam Method Class


Sebagai contoh tutorial, saya akan kembali memodifikasi class laptop dengan menambahkan fitur
argumen dalam method:
<?php
// buat class laptop
class laptop {
// buat method untuk class laptop
public function hidupkan_laptop($pemilik,$merk) {
return "Hidupkan Laptop $merk punya $pemilik";
}
}
// buat objek dari class laptop (instansiasi)
$laptop_andi= new laptop();

228 | P a g e

http://www.duniailkom.com_________________________________________________________

echo $laptop_andi->hidupkan_laptop("Andi", "Lenovo");


// hasil: "Hidupkan Laptop Lenovo punya Andi";
?>

Dalam contoh diatas, saya memanggil method hidupkan_laptop() dengan 2 argumen, yakni Andi
dan Lenovo. Kedua nilai ini akan diproses oleh method hidupkan_laptop().
Perhatikan bahwa saya tidak menggunakan variabel $this, karena argumen tersebut milik method,
perhatikan bedanya jika saya mengubah class laptop menjadi berikut ini:
<?php
// buat class laptop
class laptop {
// buat property untuk class laptop
private $pemilik="Anto";
private $merk="Acer";
// buat method untuk class laptop
public function hidupkan_laptop($pemilik,$merk) {
return "Hidupkan Laptop $merk punya $pemilik";
}
public function hidupkan_laptop_anto() {
return "Hidupkan Laptop $this->merk punya $this->pemilik";
}
}
// buat objek dari class laptop (instansiasi)
$laptop_andi= new laptop();
echo $laptop_andi->hidupkan_laptop("Andi", "Lenovo");
// hasil: "Hidupkan Laptop Lenovo punya Andi";
echo $laptop_andi->hidupkan_laptop_anto();
// hasil: "Hidupkan Laptop Acer punya Anto";
?>

Pada class laptop diatas, saya menambahkan 2 property: $pemilik dan $merk, kemudian memberikan
nilai Anto dan Acer. Jika yang kita inginkan adalah nilai dari variabel ini, maka di dalam method,
kita harus menggunakan $this.
Semua fitur function, juga bisa diterapkan di dalam method, termasuk default parameter seperti yang
pernah kita bahas pada Tutorial Belajar PHP: Cara Pembuatan Default Parameter pada Fungsi PHP,
seperti contoh berikut:
<?php
// buat class laptop
class laptop {
// buat method untuk class laptop
public function hidupkan_laptop($pemilik="Joko",$merk="Samsung") {
return "Hidupkan Laptop $merk punya $pemilik";
}
}
// buat objek dari class laptop (instansiasi)
$laptop_andi= new laptop();
echo $laptop_andi->hidupkan_laptop();
// hasil: "Hidupkan Laptop Samsung punya Joko";
echo "<br />";

229 | P a g e

http://www.duniailkom.com_________________________________________________________
echo $laptop_andi->hidupkan_laptop("Andi", "Lenovo");
// hasil: "Hidupkan Laptop Lenovo punya Andi";
?>

Pada contoh kode program PHP diatas, dengan membuat method sebagai berikut:
public function hidupkan_laptop($pemilik="Joko",$merk="Samsung")

Maka, ketika method tersebut dipanggil tanpa menambahkan argumen, nilai Joko dan Samsung
akan digunakan sebagai nilai default, namun jika argumen ditulis, nilai argumen yang diinput akan
menimpa nilai default ini.
Dalam tutorial belajar PHP Objek Oriented Programming kali ini, kita telah membahas cara membuat
method di dalam PHP dengan menggunakan argumen / parameter. Kesimpulannya, karena method
adalah sebutan lain untuk function di dalam class, maka seluruh fitur function bisa digunakan untuk
method.
Dalam tutorial OOP PHP berikutnya, kita akan membahas tentang pengertian constructor dan
destructor dalam pemrograman objek PHP.

Tutorial Belajar OOP PHP Part 8: Pengertian Constructor dan


Destructor
Melanjutkan tutorial Belajar Object Oriented Programming (OOP) PHP, kali ini kita akan membahas
tentang Pengertian Constructor dan Destructor dalam Pemrograman Objek, khususnya OOP PHP.

Pengertian Constructor dalam OOP


Constructor (bahasa indonesia: konstruktor) adalah method khusus yang akan dijalankan secara
otomatis pada saat sebuah objek dibuat (instansiasi), yakni ketika perintah new dijalankan.
Constructor biasa digunakan untuk membuat proses awal dalam mempersiapkan objek, seperti
memberi nilai awal kepada property, memanggil method internal dan beberapa proses lain yang
digunakan untuk mempersiapkan objek.
Dalam PHP, constructor dibuat menggunakan method : __construct().

Pengertian Destructor dalam OOP


Destructor (bahasa indonesia: destruktor) adalah method khusus yang dijalankan secara otomatis
pada saat sebuah objek dihapus. Di dalam PHP, seluruh objek secara otomatis dihapus ketika halaman
PHP dimana objek itu berada selesai diproses. Tetapi kita juga dapat menghapus objek secara manual.
Destructor biasanya digunakan untuk membersihkan beberapa variabel, atau menjalankan proses
tertentu sebelum objek dihapus.
Dalam PHP, destructor dibuat menggunakan method : __destruct().

230 | P a g e

http://www.duniailkom.com_________________________________________________________

Cara Penggunaan Destructor dan Constructor dalam PHP


Sebagai tutorial kita kali ini, berikut adalah contoh penggunaan constructor dan destructor dalam PHP:
<?php
// buat class laptop
class laptop {
private $pemilik = "Andi";
private $merk = "Lenovo";
public function __construct(){
echo "Ini berasal dari Constructor Laptop";
}
public function hidupkan_laptop(){
return "Hidupkan Laptop $this->merk punya $this->pemilik";
}
public function __destruct(){
echo "Ini berasal dari Destructor Laptop";
}
}
// buat objek dari class laptop (instansiasi)
$laptop_andi= new laptop();
echo "<br />";
echo $laptop_andi->hidupkan_laptop();
echo "<br />";
?>

Dalam contoh diatas, saya membuat class laptop dengan 3 method:


Method __construct() merupakan constructor dari class laptop. Method ini akan dipanggil
secara otomatis ketika class laptop di instansiasi.
Method hidupkan_laptop() merupakan method biasa yang akan menampilkan hasil string.
Untuk menggunakan method ini, kita memanggilnya dari objek.
Method ketiga adalah __destruct() yang merupakan destructor dari class laptop. Method ini
akan dipanggil saat objek dihapus.
Setelah pendefinisian class, saya membuat objek $laptop_andi, dan memanggil method
hidupkan_laptop(). Berikut adalah hasil yang didapat:
Ini berasal dari Constructor Laptop
Hidupkan Laptop Lenovo punya Andi
Ini berasal dari destructor Laptop

231 | P a g e

http://www.duniailkom.com_________________________________________________________
Seperti yang terlihat, method __construct() dan __destruct() secara otomatis dipanggil saat objek
dibuat dan saat objek dihapus. Untuk mencoba menghapus objek $laptop_andi secara manual, kita
bisa menggunakan fungsi isset() sebagai berikut:
<?php
// buat class laptop
class laptop {
private $pemilik = "Andi";
private $merk = "Lenovo";
public function __construct(){
echo "Ini berasal dari Constructor Laptop";
}
public function hidupkan_laptop(){
return "Hidupkan Laptop $this->merk punya $this->pemilik";
}
public function __destruct(){
echo "Ini berasal dari Destructor Laptop";
}
}
// buat objek dari class laptop (instansiasi)
$laptop_andi= new laptop();
echo "<br />";
echo $laptop_andi->hidupkan_laptop();
echo "<br />";
// hapus objek $laptop_andi
unset($laptop_andi);
echo "<br />";
echo "Objek Telah Dihancurkan";
?>

Jika kita menjalankan kode diatas, berikut adalah hasil yang didapat:
Ini berasal dari Constructor Laptop
Hidupkan Laptop Lenovo punya Andi
Ini berasal dari Destructor Laptop
Objek Telah Dihancurkan

Setelah memanggil method $laptop_andi->hidupkan_laptop(), saya kemudian menghapus objek


$laptop_andi secara manual menggunakan fungsi unset($laptop_andi).
Untuk membuktikan bahwa destructor $laptop_andi sudah dijalankan, saya menambahkan
perintahecho Objek Telah Dihancurkan diakhir halaman. Sehingga kita bisa melihat
bahwa destructor objek $laptop andi di jalankan sebelum dihapus otomatis oleh PHP. Silahkan anda
coba hapus perintah unset($laptop_andi), maka string Objek Telah Dihancurkan akan tampil
sebelum destructor objek$laptop_andi.

232 | P a g e

http://www.duniailkom.com_________________________________________________________
Sebagai contoh terakhir dalam tutorial kali ini, saya akan membuat contoh constructor yang sering
digunakan untuk membuat objek dengan nilai awal. Konsep ini sering digunakan dalam pemrograman
objek. Berikut adalah contoh penggunaannya:
<?php
// buat class laptop
class laptop {
private $pemilik;
private $merk;
// constructor sebagai pembuat nilai awal
public function __construct($pemilik, $merk) {
$this->pemilik = $pemilik;
$this->merk = $merk;
}
public function hidupkan_laptop() {
return "Hidupkan Laptop $this->merk punya $this->pemilik";
}
}
// buat objek dari class laptop (instansiasi)
$laptop_andi= new laptop("Andi", "Lenovo");
echo $laptop_andi->hidupkan_laptop();
echo "<br />";
$laptop_anto= new laptop("Anto", "Acer");
echo $laptop_anto->hidupkan_laptop();
?>

Pada kode diatas, saya menggunakan constructor sebagai pembuat nilai awal dari objek. Method
constructor menerima 2 buah argumen yang kemudian disimpan kedalam property internal objek.
Berikut adalah hasil yang didapat dari kode program diatas:
Hidupkan Laptop Lenovo punya Andi
Hidupkan Laptop Acer punya Anto

Dalam tutorial kali ini, kita telah membahas tentang pengertian constructor dan destructor dalam
Pemrograman
objek
PHP.
Kemudian
kita
juga
telah
melihat
contoh
pembuatan class dan objekmenggunakan constructor dan destructor. Dalam tutorial belajar OOP PHP
berikutnya, kita akan membahas konsep penting lainnya di dalam OOP, yakni penurunan/pewarisan
(inheritance) dalam Pemrograman objek.

Tutorial Belajar OOP PHP Part 9: Pengertian Inheritance


(Pewarisan)

233 | P a g e

http://www.duniailkom.com_________________________________________________________
Setelah mempelajari tentang Pengertian Constructor dan Destructor dalam OOP PHP, melanjutkan
tutorial belajar pemrograman objek, kali ini kita akan membahas dan mempelajari Pengertian
Inheritance atau Pewarisan dalam Pemrograman Objek, serta melihat contoh penggunaannya.

Pengertian Inheritance (Pewarisan) dalam OOP


Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana sebuah class dapat
menurunkan property dan method yang dimilikinya kepada class lain. Konsep inheritance digunakan
untuk memanfaatkan fitur code reuse untuk menghindari duplikasi kode program.
Konsep inheritance membuat sebuah struktur atau hierarchy class dalam kode program. Class yang
akan diturunkan bisa disebut sebagai class induk (parent class), super class, atau base class.
Sedangkan class yang menerima penurunan bisa disebut sebagai class anak (child class), sub class,
derived class atauheir class.
Tidak semua property dan method dari class induk akan diturunkan. Property dan method dengan hak
akses private, tidak akan diturunkan kepada class anak. Hanya property dan method dengan hak
akses protected dan public saja yang bisa diakses dari class anak.
Cara Penggunaan Inheritance dalam PHP
Di dalam PHP, inheritance / penurunan dari sebuah class kepada class lain menggunakan kata kunci:
extends, dengan penulisan dasar sebagai berikut:
class induk {
//...isi class induk
}
class anak extends induk
{
//... class anak bisa mengakses
//... property dan method class induk
}

Agar lebih mudah dipahami, kita akan langsung


penggunaaninheritance/penurunan di dalam PHP:

masuk

kedalam

contoh

program

<?php
// buat class induk: komputer
class komputer {
public $merk;
public $processor;
public $memory;
public function beli_komputer() {
return "Beli komputer baru";
}
}
// turunkan class komputer ke laptop
class laptop extends komputer {
public function lihat_spec() {
return "merk: $this->merk, processor: $this->processor,
memory: $this->memory";
}
}
// buat objek dari class laptop (instansiasi)

234 | P a g e

http://www.duniailkom.com_________________________________________________________
$laptop_baru = new laptop();
// isi property objek
$laptop_baru->merk = "acer";
$laptop_baru->processor ="intel core i5";
$laptop_baru->memory = "2 GB";
//panggil method objek
echo $laptop_baru->beli_komputer();
echo "<br />";
echo $laptop_baru->lihat_spec();
?>

Dalam contoh kode diatas, saya membuat class komputer dengan beberapa property dan
sebuahmethod. Property class komputer belum berisi nilai apa-apa.
Dibawah class komputer, saya membuat class laptop extends class komputer. Disini saya menurunkan
class komputer kedalam class laptop. Di dalam class laptop, kita bisa mengakses seluruh property dan
method apapun dari class komputer selama memiliki hak akses public atau protected.
Untuk membuktikan hal tersebut, saya membuat objek $laptop_baru dari class laptop. Perhatikan
bahwa kita bisa mengakses property $merk, $processor, dan$memory yang semuanya adalah
milikclass komputer, bukan class laptop. Method beli_komputer() juga sukses diakses dari
objek $laptop baru. Inilah yang dimaksud dengan inheritance/penurunan class dalam OOP.
PHP tidak membatasi berapa banyak penurunan objek yang bisa dilakukan, dalam contoh berikut,
saya membuat 3 buah class yang saling menurunkan:
<?php
// buat class komputer
class komputer {
protected function beli_komputer() {
return "Beli komputer baru";
}
}
// turunkan class komputer ke laptop
class laptop extends komputer {
protected function beli_laptop() {
return "Beli laptop baru";
}
}
// turunkan class laptop ke chromebook
class chromebook extends laptop {
protected function beli_chromebook() {
return "Beli chromebook baru";
}
public function beli_semua(){
$a = $this->beli_komputer();
$b = $this->beli_laptop();
$c = $this->beli_chromebook();
return "$a <br /> $b <br /> $c";
}
}
// buat objek dari class laptop (instansiasi)
$gadget_baru = new chromebook();
//panggil method objek
echo $gadget_baru->beli_semua();

235 | P a g e

http://www.duniailkom.com_________________________________________________________

// $gadget_baru->beli_komputer();
// Fatal error: Call to protected method komputer::beli_komputer()
?>

Dalam contoh diatas, saya membuat class komputer yang diturunkan kepada class laptop, dan
kemudian diturunkan lagi kepada class chromebook. Dari dalam class chromebook ini kemudian saya
memanggil method dari class diatasnya.
Jika anda perhatikan, setiap method selain method beli_semua(), memiliki hak akses protected. Hak
akses protected ini menghalangi kode program lain untuk mengaksesnya, selain class turunan.
Pada baris terakhir, saya menyisipkan kode program untuk mencoba mengakses
methodbeli_komputer() . Kode ini sengaja saya beri tanda komentar. Jika anda menghapus tanda
komentar, PHP akan mengeluarkan error yang menyatakan kita tidak bisa mengakses method dengan
hak akses protected:
<?
$gadget_baru->beli_komputer();
// Fatal error: Call to protected method komputer::beli_komputer()
?>

Inilah yang dimaksud dengan enkapsulasi dalam OOP. Membatasi method yang tidak boleh diakses
akan membuat kode program menjadi lebih terstruktur.

Dalam tutorial belajar OOP PHP kali ini, kita telah mempelajari konsep inheritance atau pewarisan di
dalam pemrograman objek. Dalam beberapa tutorial selanjutnya, kita akan memperdalam konsep
inheritance.
Penurunan class ini akan memberikan permasalahan tersendiri ketika terdapat property atau
method dengan nama yang sama pada parent class dan child class. Mengenai hal ini akan kita bahas
dalam tutorial belajar OOP PHP berikutnya: Cara Mengakses Property dan Method Parent Class.

Tutorial Belajar OOP PHP Part 10: Cara Mengakses Property dan
Method Parent Class
Melanjutkan tutorial OOP PHP mengenai Inheritance, kali ini kita akan mempelajari cara mengakses
property dan method dari parent class, serta pengertian Scope Resolution Operator.

Cara Mengakses Property dan Method Parent Class


Konsep pewarisan/inheritance dimana sebuah class bisa memiliki property dan method dari class lain,
bisa menjadi permasalahan ketika property atau method dari class anak memiliki nama yang sama
dengan class induk, atau dikenal dengan istilah overridden property dan overridden method.
Untuk memahami pengertian overridden property dan overridden method, perhatikan contoh kode
program berikut ini:
<?php
// buat class komputer
class komputer {
public function lihat_spec() {
return "Spec Komputer: Acer,
Processor Intel core i7, Ram 4GB";

236 | P a g e

http://www.duniailkom.com_________________________________________________________
}
}
// turunkan class komputer ke laptop
class laptop extends komputer {
public function lihat_spec() {
return "Spec Laptop: Asus,
Processor Intel core i5, Ram 2GB";
}
}
// buat objek dari class laptop (instansiasi)
$gadget_baru = new laptop();
//panggil method lihat_spec()
echo $gadget_baru->lihat_spec();
?>

Pada kode program diatas, saya membuat 2 buah class: komputer dan laptop. Saya
menurunkanclass
komputer
kedalam
class
laptop,
sehingga
seluruh property dan method dari class komputer bisa diakses dari class laptop.
Namun perhatikan bahwa method pada class komputer memiliki nama yang sama dengan method
dalam class laptop. Ketika kita memanggil method lihat_spec(), method manakah yang akan
dijalankan?
Jika anda menjalankan kode diatas, maka hasilnya adalah:
Spec Laptop: Asus, Processor Intel core i5, Ram 2GB

Berdasarkan hasil yang di dapat, terlihat bahwa method yang dijalankan adalah method milik class
laptop.
Di dalam PHP, ketika nama property atau nama method child class memiliki nama yang sama dengan
parent class, maka yang dijalankan adalah property atau method milik child class.
Jadi, bagaimana cara mengakses property dan method milik class komputer? PHP mengatasi hal ini
dengan menggunakan Scope Resolution Operator.

Pengertian Scope Resolution Operator PHP


Scope Resolution Operator adalah operator khusus di dalam PHP yang memungkinkan kita untuk
mengakses informasi khusus dari dalam class.
Informasi khusus ini terdiri dari: overridden property atau overridden method, static property atau
static method, serta constanta class. Untuk saat ini, kita akan fokus kepada overridden property atau
overridden method. Mengenai static property, static method, dan konstanta class akan kita bahas
dalam tutorial lainnya.
Scope Resolution Operator ditulis dengan tanda dua kali titik dua (double colon), yakni ::. Untuk
mengakses property dan method dari class induk, kita mengaksesnya dengan perintah:
parent::nama_property;
parent::nama_method();

Kembali kepada contoh program, kali ini kita ingin menampilkan method lihat_spec() dari class
komputer:
<?php
// buat class komputer
class komputer {
public function lihat_spec() {
return "Spec Komputer: Acer,

237 | P a g e

http://www.duniailkom.com_________________________________________________________
Processor Intel core i7, Ram 4GB";
}
}
// turunkan class komputer ke laptop
class laptop extends komputer {
public function lihat_spec() {
return "Spec Laptop: Asus,
Processor Intel core i5, Ram 2GB";
}
public function lihat_spec_komputer() {
return parent::lihat_spec();
}
}
// buat objek dari class laptop (instansiasi)
$gadget_baru = new laptop();
//panggil method lihat_spec()
echo $gadget_baru->lihat_spec();
echo "<br />";
//panggil method lihat_spec_komputer()
echo $gadget_baru->lihat_spec_komputer();
?>

Kode program diatas adalah revisi dari contoh kita sebelumnya. Saya menambahkan sebuahmethod
lihat_spec_komputer()
kedalam
class
laptop.
Method
ini
selanjutkan
akan
memanggil methodclass komputer, dengan perintah parent::lihat_spec().
Hasilnya adalah:
Spec Laptop: Asus, Processor Intel core i5, Ram 2GB
Spec Komputer: Acer, Processor Intel core i7, Ram 4GB

Contoh diatas adalah cara mengakses method parent class dari child class. Lalu bagaimana dengan
cara mengakses parent property dari child class? Jika anda berfikir sama seperti saya, maka kita bisa
tebak bahwa caranya adalah menggunakan parent::nama_property, apakah bisa? mari kita coba:
<?php
// buat class komputer
class komputer {
public $merk = "acer";
public function lihat_spec() {
return "Spec Komputer: Acer,
Processor Intel core i7, Ram 4GB";
}
}
// turunkan class komputer ke laptop
class laptop extends komputer {
public $merk = "asus";
public function lihat_spec() {
return "Spec Laptop: Asus,
Processor Intel core i5, Ram 2GB";
}
public function lihat_spec_komputer() {

238 | P a g e

http://www.duniailkom.com_________________________________________________________
return parent::lihat_spec();
}
public function lihat_merk_komputer() {
return parent::$merk;
}
}
// buat objek dari class laptop (instansiasi)
$gadget_baru = new laptop();
//panggil method lihat_spec()
echo $gadget_baru->lihat_spec();
echo "<br />";
//panggil method lihat_spec_komputer()
echo $gadget_baru->lihat_spec_komputer();
//panggil method lihat_merk_komputer()
echo $gadget_baru->lihat_merk_komputer();
?>

Dalam kode program diatas, saya menambahkan sebuah method baru: lihat_merk_komputer() yang
akan menjalankan perintah return parent::$merk. Jika kita menjalankan program diatas, hasilnya
adalah:
Spec Laptop: Asus, Processor Intel core i5, Ram 2GB
Spec Komputer: Acer, Processor Intel core i7, Ram 4GB
<b>Fatal error</b>: Access to undeclared static property:
komputer::$merk

Apa yang terjadi?


Error diatas juga membuat saya bingung saat pertama kali mencobanya. Kode error diatas berarti kita
mencoba mengakses property static $merk dari class komputer, bukan property public
$merk dariclass komputer sebagaimana kode error (Property static tidak sama dengan property biasa,
kita akan mempelajarinya sesaat lagi di: Pengertian static property dan static method).
Pengertian static property belum kita pelajari sampai tutorial kali ini, dan akan saya bahas lengkap
pada tutorial tersendiri. Namun berdasarkan kode error tersebut dan membaca beberapa sumber,
saya mendapati bahwa kita tidak bisa mengakses property parent class secara langsung.
Jadi, bagaimana caranya?
Yang perlu menjadi perhatian disini adalah bahwa kode kita disini memiliki nama method dan property
yang sama baik di child class dan juga pada parent class. Solusi yang paling mudah adalah: tidak
menggunakan nama property dan method yang sama. Dengan demikian, kode program akan menjadi
lebih jelas dan lebih mudah untuk dipahami.
Dalam tutorial kali ini, kita telah mempelajari cara mengakses property dan method parent
classdengan Scope Resolution Operator, atau tanda ::.
Dalam tutorial selanjutnya, masih berkaitan dengan inheritance, kita akan mempelajari efek
penurunan ini kedalam constructor dan destructor. Kita akan mempelajari cara mengakses
constructor dan destructor parent class.

Tutorial Belajar OOP PHP Part 11: Cara Mengakses Constructor


dan Destructor Parent Class
239 | P a g e

http://www.duniailkom.com_________________________________________________________
Setelah membahas cara mengakses property dan method parent class, dalam tutorial belajar OOP
PHP kali ini akan membahas cara mengakses constructor dan destructor parent class. Tutorial kali ini
masih berkaitan dengan efek pewarisan (inheritance) dalam pemrograman objek.

Efek Inheritance dalam Constructor dan Destructor


Seperti yang telah kita pelajari dalam tutorial Tutorial Belajar OOP PHP: Pengertian Constructor dan
Destructor, construktor dan destructor adalah method khusus yang dijalankan secara otomatis ketika
sebuah class di instansiasi ke dalam sebuah objek, dan ketika objek tersebut dihapus.
Konsep inhertitance atau pewarisan class memiliki efek khusus dalam construktor dan destructor.
Terutama construktor dan destructor dari parent class.
Mari kita jelaskan dengan menggunakan contoh:
<?php
// buat class komputer
class komputer {
// buat constructor class komputer
public function __construct() {
echo "Constructor dari class komputer <br />";
}
// buat destructor class komputer
public function __destruct() {
echo "Destructor dari class komputer <br />";
}
}
// turunkan class komputer ke laptop
class laptop extends komputer {
}
// turunkan class laptop ke chromebook
class chromebook extends laptop {
}
// buat objek dari class chromebook (instansiasi)
$gadget_baru = new chromebook();
echo "Belajar OOP PHP <br />";
?>

Pada kode diatas, saya membuat class komputer dengan construktor dan destructor. Class computer
kemudian diturunkan kepada class laptop, kemudian diturunkan kembali kepada class chromebook.
Baik class laptop maupun class chromebook tidak memiliki property maupun method. Class
chromebook inilah yang akan kita instansiasi kedalam objek $gadget_baru.
Ketika program itu dijalankan, berikut adalah hasil yang didapat:
Constuctor dari class komputer
Belajar OOP PHP
Destructor dari class komputer

Dari hasil tersebut terlihat bahwa constructor dan destructor class komputer tetap dijalankan
walaupun kita membuat objek dari class chromebook.

Pengertian Overridden Constructor dan Overridden Destructor

240 | P a g e

http://www.duniailkom.com_________________________________________________________
Dalam kode program diatas, saya tidak membuat constructor dan destructor untuk class laptop dan
class chromebook. Tapi bagaimana jika ketiga class ini juga memiliki constructor dan destructor? Mari
kita coba:
<?php
// buat class komputer
class komputer {
// buat constructor class komputer
public function __construct() {
echo "Constructor dari class komputer <br />";
}
// buat destructor class komputer
public function __destruct() {
echo "Destructor dari class komputer <br />";
}
}
// turunkan class komputer ke laptop
class laptop extends komputer {
// buat constructor class laptop
public function __construct() {
echo "Constructor dari class laptop <br />";
}
// buat destructor class laptop
public function __destruct() {
echo "Destructor dari class laptop";
}
}
// turunkan class laptop ke chromebook
class chromebook extends laptop {
// buat constructor class chromebook
public function __construct() {
echo "Constructor dari class chromebook <br />";
}
// buat destructor class chromebook
public function __destruct() {
echo "Destructor dari class chromebook <br />";
}
}
// buat objek dari class chromebook (instansiasi)
$gadget_baru = new chromebook();
echo "Belajar OOP PHP <br />";
?>

Kode diatas memiliki constructor dan destructor pada masing-masing class, mari kita lihat hasilnya:
Constuctor dari class chromebook
Belajar OOP PHP
Destructor dari class chromebook

Kemana constructor dan destructor class lainnya?


Di dalam PHP, ketika child class memiliki constructor dan destructor sendiri, maka PHP akan
melewatkan constructor dan destructor parent class, kasus ini disebut dengan Overridden
Constructordan Overridden Destructor.
241 | P a g e

http://www.duniailkom.com_________________________________________________________
Karena di dalam contoh kita class chromebook memiliki constructor dan destructor,
maka constructor dan destructor class induknya tidak dijalankan.
Bagaimana jika kita ingin constructor dan destructor parent class tetap dijalankan?
Solusinya, kita harus memanggil constructor dan destructor parent class secara manual denganScope
Resolution Operator, yakni: parent::__construct() dan parent::__desctruct().
Berikut adalah modifikasi kode program kita diatas:
<?php
// buat class komputer
class komputer {
public function __construct() {
echo "Constructor dari class komputer <br />";
}
public function __destruct() {
echo "Destructor dari class komputer <br />";
}
}
// turunkan class komputer ke laptop
class laptop extends komputer {
public function __construct() {
parent::__construct();
echo "Constructor dari class laptop <br />";
}
public function __destruct() {
echo "Destructor dari class laptop <br />";
parent::__destruct();
}
}
// turunkan class laptop ke chromebook
class chromebook extends laptop {
public function __construct() {
parent::__construct();
echo "Constructor dari class chromebook <br />";
}
public function __destruct() {
echo "Destructor dari class chromebook <br />";
parent::__destruct();
}
}
// buat objek dari class chromebook (instansiasi)
$gadget_baru = new chromebook();
echo "Belajar OOP PHP <br />";
?>

Hasil yang kita dapat adalah:


Constructor dari class komputer
Constructor dari class laptop
Constructor dari class chromebook
Belajar OOP PHP
Destructor dari class chromebook
Destructor dari class laptop
Destructor dari class komputer

242 | P a g e

http://www.duniailkom.com_________________________________________________________
Dengan memanggil manual perintah parent::__construct() dan parent::__desctruct(), kita bisa
menjalankan seluruh constructor dan destructor dari parent class.
Dalam tutorial belajar Object Oriented Programming (OOP) PHP kali ini, kita telah mempelajari cara
kerja constructor dan destructor jika sebuah class diturunkan dari class lain (inheritance).
Constructor dan destructor parent class akan dijalankan jika child class tidak mendefenisikan
constructor dan destructor sendiri. Namun jika child class juga memiliki constructor dan desctructor,
maka kita harus memanggil constructor dan destructor parent class secara manual.
Dalam tutorial OOP PHP berikutnya, kita akan mempelajari pengertian static property dan static
method dalam pemrograman objek.

Tutorial Belajar OOP PHP Part 12: Pengertian Static Property dan
Static Method
Dalam lanjutan tutorial belajar OOP PHP kali ini, kita akan mempelajari tentang Pengertian Static
Property dan Static Method dalam Pemrograman Objek, kemudian kita akan melihat cara
penggunaannya di dalam PHP.

Pengertian Static Property dan Static Method


Jika di awal tutorial Pemrograman objek PHP ini saya menjelaskan bahwa seluruh property dan
method hanya bisa diakses dari objek, maka static property dan static method adalah
pengecualiannya.
Static property dan static method adalah property (variabel) dan method (function) yang melekat
kepada class, bukan kepada objek. Konsep static property memang agak keluar dari konsep objek
sebagai tempat melakukan proses, karena sebenarnya class hanya merupakan blueprint saja.
Untuk membuat static property dan static method, kita menambahkan keyword static setelah
penulisan akses level property atau method, seperti contoh berikut:
// static property
public static $harga_beli;
// static method
public static function beli_laptop() {
//...isi method
}

Dalam contoh diatas, saya menggunakan hak akses public, tetapi kita juga bisa menggunakan hak
akses lain seperti private dan protected untuk static property dan static method.
Karena static property dan static method adalah milik class, maka kita tidak perlu membuat objek
untuk mengaksesnya, tapi langsung menyebutkan nama class dan menggunakan operator ::, berikut
adalah contoh pengaksesan static property dan static method dari class laptop:
echo laptop::$harga_beli;
echo laptop::beli_laptop();

Tutorial Cara Penggunaan Static Property dan Static Method


Agar lebih memahami cara penggunaan static property dan static method, langsung saja kita masuk
ke dalam kode program:
<?php
// buat class laptop

243 | P a g e

http://www.duniailkom.com_________________________________________________________
class laptop {
public $merk;
public $pemilik;
// static property
public static $harga_beli;
//static method
public static function beli_laptop() {
return "Beli Laptop";
}
}
// set static property
laptop::$harga_beli=4000000;
// get static property
echo "harga beli : Rp".laptop::$harga_beli;
echo "<br />";
// panggil static method
echo laptop::beli_laptop();
?>

Dalam kode diatas, saya membuat class laptop dengan 2 property biasa, 1 static property dan 1 static
method. Perhatikan cara mengkases keduanya tanpa membuat objek.

Cara Mengakses Static Property dan Static Method Dari Class Itu Sendiri
Jika kita menggunakan variabel $this untuk mengakses property dan method normal dari dalam class,
maka untuk mengakses static property dan static method, kita menggunakan keyword self::. Berikut
contoh penggunaannya:
<?php
// buat class laptop
class laptop {
public $merk;
public $pemilik;
// static property
public static $harga_beli;
//static method
public static function beli_laptop() {
return "Beli laptop seharga Rp".self::$harga_beli;
}
}
// set static property
laptop::$harga_beli=4000000;
// panggil static method
echo laptop::beli_laptop();
?>

Pada kode program PHP diatas, saya menggunakan perintah self::$harga_beli, untuk memanggilstatic
property dari dalam class laptop itu sendiri.

244 | P a g e

http://www.duniailkom.com_________________________________________________________

Cara Mengakses Static Property dan Static Method Parent Class


Untuk class dengan penurunan (inheritance), kita bisa menggunakan keyword
parent::nama_property dan parent::nama_method untuk mengakses static property dan static
method dari parent class.
Misalnya class laptop adalah turunan dari class komputer, kita bisa menggunakan perintah
parent::beli_komputer() untuk mengakses static method pada class komputer dari dalam class laptop.
Berikut adalah contoh pengaksesan static method milik parent class:
<?php
// buat class komputer
class komputer {
// protected static method
protected static function beli_komputer(){
return "Beli Komputer Baru";
}
}
// turunkan class komputer ke class laptop
class laptop extends komputer{
// private static method
private static function beli_laptop(){
return "Beli Laptop Baru";
}
// public static method
public static function beli_semua(){
echo parent::beli_komputer();
echo "<br />";
echo self::beli_laptop();
}
}
// panggil static method
laptop::beli_semua();
// coba panggil private static method
// laptop::beli_laptop();
// Fatal error: Call to private method laptop::beli_laptop()
?>

Pada kode diatas, saya membuat class komputer dengan sebuah static method beli_komputer().
Method ini memiliki hak akses protected, sehingga hanya bisa diakses dari dalam class itu sendiri atau
dari dalam class turunan.
Class komputer kemudian diturunkan kepada class laptop. Di dalam class laptop, saya membuat dua
buah static method. Static method beli_laptop() di set dengan hak akses private, sehingga tidak bisa
diakses dari luar class laptop.
Dalam method beli_semua(), saya memanggil method beli_komputer() milik class computer
menggunakan perintah parent::beli_komputer(). Ini adalah cara pemanggilan static method milik
parent class. Kemudian masih di dalam method beli_semua(), saya memanggil
method beli_laptop()dengan perintah self::beli_laptop(), karena method ini ada di dalam class leptop
itu sendiri.
Untuk menguji apakah method beli_semua() sukses dijalankan, saya kemudian memanggilnya dengan
perintah laptop::beli_semua().
245 | P a g e

http://www.duniailkom.com_________________________________________________________
Perhatikan juga pada bagian komentar di akhir kode diatas. Jika kita mencoba memanggil method
laptop::beli_laptop(), PHP akan mengeluarkan error karena method beli_laptop() memiliki hak
aksesprivate, sehingga tidak bisa diakses dari luar class.
Dalam membuat program berbasis objek, penggunaan static property (dan juga static method)
sebaiknya dibatasi, karena static method cenderung susah dideteksi jika terjadi kesalahan. Namun
konsep property dan method yang melekat kepada class ini banyak juga digunakan untuk
membuatdesign pattern. Bahkan di dalam framework PHP seperti laravel, static method merupakan
mekanisme utama untuk menjalankan sebagian besar kode program.
Dalam tutorial selanjutnya, kita akan mempelajari pengertian konstanta class dalam pemrograman
objek.

Tutorial Belajar OOP PHP Part 13: Pengertian Konstanta Class


dalam Pemrograman Objek
Dalam tutorial belajar object oriented programming PHP kali ini, kita akan mempelajari pengertian
konstanta class. Cara pengaksesan konstanta class dalam PHP, mirip dengan cara mengakses static
property yang telah kita pelajari dalam tutorial sebelumnya.

Pengertian Konstanta Class


Konstanta Class atau class constant adalah konstanta yang berada di dalam class. Selain
memilikiproperty dan method, PHP juga membolehkan kita menggunakan konstanta (constant) di
dalam class.
Sebagaimana sifat konstanta reguler, class constant juga tidak bisa diubah nilainya ketika sudah
didefenisikan. Untuk membuat class constant di dalam PHP, kita menggunakan perintah: const.

Berikut adalah contoh kode program pembuatan constanta di dalam class:


class nama_class {
const NAMA_KONSTANTA = nilai_konstanta;
}

Penulisan nama konstanta dengan huruf besar bukan keharusan, namun lebih kepada kebiasaan
programmer PHP agar mudah dibedakan dengan variabel yang umumnya ditulis dengan huruf kecil.
Di dalam PHP, class constant seolah-olah berprilaku sebagai static property. Class constant juga terikat
kepada class, bukan objek. Oleh karena itu, untuk mengakses nilai konstanta, kita menggunakan
operator yang sama seperti static property, yakni menggunakan double colon ::.
Jika kita memiliki class laptop dan konstanta MERK, maka cara mengaksesnya adalah sebagai berikut:
laptop::MERK;

Cara Penulisan Konstanta Class dalam PHP


Untuk melihat cara penulisan dan penggunaan konstanta class, kita akan langsung menggunakan kode
program. Berikut adalah contoh class laptop dengan sebuah konstanta DOLLAR:
<?php
// buat class laptop

246 | P a g e

http://www.duniailkom.com_________________________________________________________
class laptop {
// buat konstanta
const DOLLAR = '12000';
}
// panggil konstanta class
echo "Harga dollar saat ini = Rp. ".laptop::DOLLAR;
// hasil: Harga dollar saat ini = Rp. 12000
?>

Perhatikan bahwa untuk mengakses class constant DOLLAR milik class laptop, kita menggunakan
perintah laptop::DOLLAR.
Selain mengakses konstanta dengan menggunakan nama class, PHP juga memiliki cara lain, yakni
dengan mengaksesnya dari objek. Fitur ini hanya bisa digunakan untuk PHP versi 5.3 keatas. Berikut
contohnya:
<?php
// buat class laptop
class laptop {
// buat konstanta
const DOLLAR = '12000';
}
// buat objek dari class laptop (instansiasi)
$laptop_baru = new laptop();
// panggil konstanta class
echo "Harga dollar saat ini = Rp ".$laptop_baru::DOLLAR;
// hasil: Harga dollar saat ini = Rp. 12000
?>

Dalam kode diatas, kita mengakses nilai kontanta class dari objek $laptop_baru menggunakan
perintah $laptop_baru::DOLLAR.
PHP versi 5.3 keatas juga membolehkan pemanggilan property dengan nama class yang berada di
dalam variabel. Berikut contohnya:
<?php
// buat class laptop
class laptop {
// buat konstanta
const DOLLAR = '12000';
}
// buat variabel dengan nama class
$nama = "laptop";
// panggil konstanta class
echo "Harga dollar saat ini = Rp. ".$nama::DOLLAR;
// hasil: Harga dollar saat ini = Rp. 12000
?>

Pada kode program diatas, saya tidak menggunakan objek, tetapi membuat variabel $nama dan
memberikannya nilai laptop. Karena nama class kita juga adalah laptop, maka PHP membolehkan
pemanggilan kosntanta DOLLAR dengan $nama::DOLLAR. Nama variabel yang digunakan boleh bebas,
selama nilainya cocok dengan nama class tempat konstanta itu berada.

Cara Mengakses Konstanta Class dari dalam Class itu Sendiri

247 | P a g e

http://www.duniailkom.com_________________________________________________________
Untuk mengakses class constant dari dalam class itu sendiri, PHP menggunakan cara yang sama
dengan static property, yaitu dengan perintah self::nama_konstanta. Berikut contohnya:
<?php
// buat class laptop
class laptop {
// buat konstanta
const DOLLAR = '12000';
// buat method
public function beli_laptop($harga) {
return "Beli Komputer Baru, Rp. ".$harga*self::DOLLAR;
}
}
// buat objek dari class laptop (instansiasi)
$laptop_baru=new laptop();
echo $laptop_baru->beli_laptop(400);
// hasil: Beli Komputer Baru, Rp. 4800000
?>

Saya membuat class laptop dengan sebuah method beli_laptop(). Method beli_laptop() digunakan
untuk menghitung harga laptop dengan mengalikan konstanta class DOLLAR dengan parameter
$harga. Perhatikan bahwa kita mengakses class constant dengan perintah self::DOLLAR.

Cara Mengakses Konstanta Class milik Parent Class


Pewarisan class (class inheritance) dari sebuah class kedalam class lain, juga akan menurunkan
konstanta. Jika kebetulan class yang diturunkan (child class) memiliki nama konstanta yang sama
dengan parent class, konstanta tersebut akan tertimpa.
PHP menggunakan operator parent::nama_konstanta untuk mengakses konstanta milik parent class.
Agar
lebih
mudah,
berikut
adalah
contoh
kode
program
penggunaan
operatorparent::nama_konstanta:
<?php
// buat class komputer
class komputer {
// buat konstanta class komputer
const DOLLAR = '11000';
}
// turunkan class komputer ke class laptop
class laptop extends komputer {
// buat konstanta class laptop
const DOLLAR = '12000';
// buat method dengan konstanta class komputer
public function beli_komputer($harga){
return "Beli Komputer Baru, Rp .".$harga*parent::DOLLAR;
}
// buat method dengan konstanta class laptop
public function beli_laptop($harga){
return "Beli Komputer Baru, Rp .".$harga*self::DOLLAR;
}
}

248 | P a g e

http://www.duniailkom.com_________________________________________________________
// buat objek dari class laptop (instansiasi)
$laptop_baru=new laptop();
echo $laptop_baru->beli_laptop(400);
echo "<br />";
echo $laptop_baru->beli_komputer(400);
?>

Saya membuat konstanta DOLLAR di dalam class komputer. Class komputer kemudian diturunkan ke
dalam class laptop. Di dalam class laptop, saya mendefenisikan kembali konstanta DOLLAR. Karena
kedua konstanta ini memiliki nama yang sama, maka saya harus menggunakan
perintahparent::DOLLAR untuk memanggil konstanta DOLLAR miliki class komputer.
Dalam tutorial OOP PHP kali ini kita telah mempelajari tentang pengertian konstanta class dan cara
penggunaan konstanta class dalam PHP. Walaupun konstanta class jarang digunakan di dalam
pemograman umum, namun fitur yang ditawarkan mungkin bisa membantu untuk penyelesaian
kasus-kasus tertentu.
Dalam tutorial OOP PHP berikutnya, kita akan mempelajari Pengertian Final Method dan Final Class
Pemrograman Objek PHP.

Tutorial Belajar OOP PHP Part 14: Pengertian Final Method dan
Final Class Pemrograman Objek
Setelah sebelumnya mempelajari tentang class constant, dalam tutorial belajar OOP PHP kali ini kita
akan membahas pengertian final method dan final class dalam pemrograman objek PHP.

Pengertian Final Method dan Final Class


Dalam membuat desain class, kita sering menurunkan sebuah class kepada class lain, atau yang
dikenal dengan inheritance/pewarisan. Pemrograman objek juga membolehkan kita untuk
menimpamethod milik parent class dengan method milik child class. Proses menimpa method atau
dikenal dengan istilah overridden method ini dilakukan dengan cara membuat nama method yang
sama dengan nama method yang ada di dalam parent class.

Bagaimana jika kita menginginkan sebuah mekanisme untuk melarang class anak untuk membuat
method yang akan menimpa method class induk? Atau bahkan melarang sebuah class untuk
diturunkan sama sekali? Untuk keperluan ini, pemrograman objek PHP menggunakan keyword:final.
Dengan menambahkan keyword final kepada sebuah method, maka method tersebut tidak dapat
didefenisikan ulang di dalam child class. Dan jika sebuah class ditambahkan keyword final,
makaclass tersebut tidak bisa diturunkan sama sekali. Inilah pengertian dari final method dan final
class.

Untuk membuat final method, kita tinggal menambahkan kata final sebelum keyword hak akses,
seperti berikut ini:
final public function nama_method(){

249 | P a g e

http://www.duniailkom.com_________________________________________________________
//... isi method
}

Sedangkan untuk membuat final class, kita menambahkan kata final sebelum nama class, seperti
contoh berikut ini:
final class nama_class {
//... isi class
}

Cara Penggunaan Final Method dan Final Class dalam PHP


Untuk membahas cara menggunakan final method dan final class, pertama kali mari kita lihat cara
penulisan dan penggunaan final method dalam PHP.
Dalam contoh berikut, saya membuat class komputer dengan sebuah final method, kemudian saya
mencoba menimpa method ini dari class laptop:
<?php
class komputer{
final public function lihat_spec(){
return "Lihat Spesifikasi Komputer";
}
}
class laptop extends komputer{
public function lihat_spec(){
return "Lihat Spesifikasi Laptop";
}
}
$laptop_baru=new laptop();
// Fatal error: Cannot override final method
// komputer::lihat_spec()
?>

Pada kode program diatas, class komputer memiliki method lihat_spec() yang di-set sebagai final.
Kemudian class komputer ini saya turunkan kepada class laptop. Di dalam class laptop, saya
mendefenisikan ulang method lihat_spec(), sehingga method lihat_spec() milik class komputer akan
tertimpa oleh method lihat_spec() milik class laptop.
Saat saya membuat objek $laptop_baru dari class laptop, PHP akan mengeluarkan error: Cannot
override final method komputer::lihat_spec(). Error ini menjelaskan bahwa kita tidak bisa menimpa
method lihat_spec() milik class komputer, karena method tersebut telah di set sebagai final.
Jika sebuah final method tidak bisa ditimpa nilainya, maka sebuah final class tidak bisa diturunkan
kepada class lain. Sebagai contoh kedua kita, berikut adalah kode PHP dimana saya mencoba
menurunkan final class:
<?php
final class komputer{
function lihat_spec(){
return "Lihat Spesifikasi Komputer";
}
}
class laptop extends komputer{
}
$laptop_baru=new laptop();
// Fatal error: Class laptop may not inherit
// from final class (komputer)

250 | P a g e

http://www.duniailkom.com_________________________________________________________
?>

Saya membuat sebuah final class komputer, kemudian mencoba menurunkannya kepada class laptop.
Saat proses pembuatan objek: $laptop_baru=new laptop(), PHP akan komplain dan mengeluarkan
error: Fatal error: Class laptop may not inherit from final class (komputer). Dari hasil error yang
didapat, PHP melarang kita untuk menurunkan class komputer, karena telah di set sebagai final class.
Sebagai contoh ketiga, walaupun PHP memang tidak memiliki final property, namun mari kita coba
membuatnya:
<?php
class komputer {
final $merk;
}
$laptop_baru=new komputer();
// Fatal error: Cannot declare property komputer::$merk final,
// the final modifier is allowed only for methods and classes
?>

Dari hasil error yang didapat, ternyata PHP memang tidak mendukung final property :)
Final method dan final class bisa digunakan untuk membuat desain class yang terstruktur. Dalam
tutorial OOP PHP selanjutnya, kita akan membahas tentang Pengertian Abstract Class dan Abstract
Method dalam Pemrograman Objek PHP.

Tutorial Belajar OOP PHP Part 15: Pengertian Abstract Class dan
Abstract Method PHP
Dalam tutorial belajar OOP PHP kali ini kita akan membahas tentang pengertian abstract class dan
abstract method dalam pemrograman objek, serta cara pembuatan abstract class dan abstract
method dengan PHP.

Pengertian Abstract Class dan Abstract Method


Abstract Class adalah sebuah class yang tidak bisa di-instansiasi (tidak bisa dibuat menjadi objek) dan
berperan sebagai kerangka dasar bagi class turunannya. Di dalam abstract class umumnya akan
memiliki abstract method.
Abstract Method adalah sebuah method dasar yang harus diimplementasikan ulang di dalam class
anak (child class). Abstract method ditulis tanpa isi dari method, melainkan hanya signature-nya
saja. Signature dari sebuah method adalah bagian method yang terdiri dari nama method dan
parameternya (jika ada).
Abstract class digunakan di dalam inheritance (pewarisan class) untuk memaksakan implementasi
method yang sama bagi seluruh class yang diturunkan dari abstract class. Abstract class digunakan
untuk membuat struktur logika penurunan di dalam pemrograman objek.
Konsep abstract class dan abstract method akan lebih mudah dipahami dengan menggunakan contoh.
Misalkan kita ingin membuat class yang terdiri dari berbagai jenis komputer seperti class laptop,class
PC, class netbook, dan lain-lain. Seluruh class ini tentunya memiliki sifat-sifat komputer,
sepertimemiliki spesifikasi, memiliki processor, dan membutuhkan listrik. Dalam implementasinya, kita
bisa membuat seluruh class ini diturunkan dari class komputer.
Agar lebih seragam, kita ingin seluruh class yang diturunkan dari class komputer, memiliki method
yang pasti ada dalam setiap class anak. Setiap komputer tentunya memiliki spesifikasi, sehingga kita
ingin setiap class yang diturunkan dari class komputer memiliki method lihat_spec().
251 | P a g e

http://www.duniailkom.com_________________________________________________________
Bagaimana caranya memaksa setiap class agar memiliki method lihat_spec()? Untuk kebutuhan ini,
kita bisa membuat class komputer sebagai abstract class, dan method lihat_spec() sebagai abstract
method.
Lebih lanjut, abstract method tidak hanya membuat setiap class memiliki method lihat_spec(), tetapi
memaksa setiap method mengimplementasikan method lihat_spec() dengan isi method di serahkan
kepada masing-masing class. Tentunya spesifikasi class laptop akan berbeda dengan spesifikasi class
PC.
Abstract class memiliki aturan yang membedakannya dengan class biasa. Kita akan membahas aturanaturan tersebut dengan menggunakan contoh program PHP.

Cara Membuat Abstract Class


Karena kita ingin membuat class komputer sebagai abstract class, maka berikut adalah cara
penulisannya di dalam PHP:
<?php
abstract class komputer {
// isi dari class komputer
}
?>

Untuk membuat abstract class di dalam PHP, kita tinggal menambahkan keyword abstract sebelum
nama class. Sebuah abstract class bisa memiliki property dan method biasa layaknya sebuah class
normal, namun juga bisa memiliki abstract method.

Cara Membuat Abstract Method


Jika sebuah method dinyatakan sebagai abstract method, maka kita tidak perlu membuat isi
methodnya, tetapi hanya signature dari method tersebut. Signature terdiri dai nama method dan
parameternya (jika ada) seperti contoh berikut:
abstract public function lihat_spec();
abstract public function lihat_spec($merk);

Kenapa kita tidak perlu membuat isi dari method? Ini karena jika sebuah method dinyatakan sebagai
abstract method, isi dari method tersebut akan dibuat dalam class turunan. Abstract
method harusberada di dalam abstract class.
Sebagai contoh, berikut adalah cara penulisan abstract method lihat_spec() di dalam abstract
classkomputer:
<?php
abstract class komputer {
abstract public function lihat_spec();
}
?>

Perhatikan bahwa kita tidak perlu (baca:tidak bisa) membuat isi dari abstract method.

Abstract Class Tidak Bisa Diinstansiasi


Sesuai dengan sifatnya, kita tidak bisa membuat objek dari abstract class. Abstract class digunakan
hanya sebagai blueprint untuk class-class lain, bukan untuk digunakan langsung.
abstract class komputer {
abstract public function lihat_spec($pemilik);
}
}

252 | P a g e

http://www.duniailkom.com_________________________________________________________

$komputer_baru=new komputer();
// Fatal error: Cannot instantiate abstract class komputer
?>

Error diatas terjadi karena kita mencoba membuat objek dari abstract class. Untuk menggunakan class
komputer, kita harus menurunkannya kepada class lain.

Abstract Class Bisa Memiliki Property dan Method biasa


Jika sebuah class dinyatakan sebagai abstract class, class tersebut juga bisa
memiliki property danmethod normal. Namun kita hanya bisa mengakses property dan method ini
dari class turunan, karena abstract class tidak bisa diinstansiasi.
<?php
// buat abstract class
abstract class komputer{
// buat abstract method
abstract public function lihat_spec($pemilik);
// buat method biasa
public function hidupkan_komputer(){
echo "Hidupkan Komputer";
}
}
?>

Class Turunan Harus Mengimplementasikan Abstract Method


Jika sebuah class diturunkan dari abstract class, maka class tersebut harus membuat ulang seluruh
abstract method yang terdapat dalam abstract class, dan juga harus sesuai dengan signature-nya.
<?php
// buat abstract class
abstract class komputer{
// buat abstract method
abstract public function lihat_spec();
}
class laptop extends komputer{
public function beli_laptop(){
return "Beli Laptop...";
}
}
// buat objek dari class laptop
$laptop_baru = new laptop();
// Fatal error: Class laptop contains 1 abstract method
// and must therefore be declared abstract or implement
// the remaining methods (komputer::lihat_spec)
?>

Dalam contoh diatas, saya menurunkan class komputer kepada class laptop. Karena class
komputeradalah abstract class dan memiliki abstract method lihat_spec(), maka di dalam class
laptop kita harus membuat ulang method lihat_spec(). Jika tidak, akan terjadi kode error seperti
diatas. Untuk mengatasinya, mari kita revisi kode diatas menjadi berikut ini :
253 | P a g e

http://www.duniailkom.com_________________________________________________________
<?php
// buat abstract class
abstract class komputer{
// buat abstract method
abstract public function lihat_spec();
}
class laptop extends komputer{
// implementasi abstract method
public function lihat_spec(){
return "Lihat Spec Laptop...";
}
// method 'biasa'
public function beli_laptop(){
return "Beli Laptop...";
}
}
// buat objek dari class laptop
$laptop_baru = new laptop();
echo $laptop_baru->lihat_spec();
// Lihat Spec Laptop...
echo "<br />";
echo $laptop_baru->beli_laptop();
// Beli Laptop...
?>

Dalam kode diatas, method lihat_spec() telah kita implementasikan di dalam class laptop. Fitur inilah
yang menjadi fungsi dari abstract method, yakni memaksa setiap class turunan untuk
memilikimethod lihat_spec().
Implementasi dari abstract method, juga harus sesuai dengan signaturenya, yakni nama
methodbeserta parameter. Jika kita membuat abstract method lihat_spec ($merk), maka di dalam
class turunan, kita juga harus membuat $merk sebagai parameter method. Jika tidak, maka PHP akan
menghasilkan error sebagai berikut:
<?php
// buat abstract class
abstract class komputer{
// buat abstract method
abstract public function lihat_spec($pemilik);
}
class laptop extends komputer{
public function lihat_spec(){
return "Lihat Spec Laptop...";
}
}
// buat objek dari class laptop
$laptop_baru = new laptop();
// Fatal error: Declaration of laptop::lihat_spec()
// must be compatible with komputer::lihat_spec($pemilik)
?>

254 | P a g e

http://www.duniailkom.com_________________________________________________________

Abstract Class Bisa Memiliki Static Method


Salah satu fitur khusus untuk abstract class di dalam PHP, adalah: abstract class bisa memiliki static
method. Berikut contohnya:
<?php
// buat abstract class
abstract class komputer{
// buat abstract method
abstract public function lihat_spec($pemilik);
public static function hidupkan_komputer(){
echo "Hidupkan Komputer";
}
}
echo komputer::hidupkan_komputer();
// Hidupkan Komputer
?>

Fungsi Abstract Class dan Abstract Method


Abstract class dan abstract method berfungsi untuk membuat kerangka bagi seluruh class
dibawahnya. Seperti contoh-contoh kita diatas, setiap class yang diturunkan dari class komputer,
pasti akan memiliki method lihat_spec().
Dalam tutorial ini saya menyederhanakan contoh kode program dengan hanya 1 abstract method. Kita
bisa membuat beberapa abstract method di dalam abstract class, seperti contoh berikut:
<?php
// buat abstract class
abstract class komputer{
// buat abstract method
abstract public function
abstract public function
abstract public function
abstract public function
}

lihat_spec();
lihat_processor();
lihat_harddisk();
lihat_pemilik();

class laptop extends komputer{


// .. isi class laptop
}
class pc extends komputer{
// .. isi class pc
}
class netbook extends komputer{
// .. isi class netbook
}
?>

Dengan membuat class komputer sebagai abstract, maka kita bisa menebak bahwa di dalam class
laptop, class pc dan class netbook, pasti memiliki method lihat_spec(), lihat_processor(),
lihat_harddisk() dan lihat_pemilik(). Dengan demikian, kita bisa membuat program yang lebih
terstruktur.

255 | P a g e

http://www.duniailkom.com_________________________________________________________
Dalam tutorial OOP PHP berikutnya, kita akan membahas tentang Object Interfaces atau dikenal
dengan sebutan Interface saja. Interface di dalam pemograman objek sangat mirip dengan abstract
class. Kita akan membahas pengertian, cara penggunaan serta perbedaan Object Interface dengan
Abstract Class.

Tutorial Belajar OOP PHP Part 16: Pengertian Object Interface


Dalam Pemrograman Berbasis Objek
Setelah dalam tutorial sebelumnya kita mempelajari tentang abstract class dan abstract method,
dalam tutorial belajar OOP PHP kali ini kita akan membahas tentang Objek Interface dalam
pemrograman berbasis objek. Object Interface ini sangat mirip dengan Abstract class.

Pengertian Object Interface


Secara sederhana, Object Interface adalah sebuah kontrak atau perjanjian implementasi method.
Bagi class yang menggunakan object interface, class tersebut harus mengimplementasikan ulang
seluruh method yang ada di dalam interface. Dalam pemrograman objek, penyebutan object
interfacesering disingkan dengan Interface saja.
Jika anda telah mempelajari abstract class, maka interface bisa dikatakan sebagai bentuk lain
dariabstract class. Walaupun secara konsep teoritis dan tujuan penggunaannya berbeda.
Sama seperti abstract class, interface juga hanya berisi signature dari method, yakni hanya
namamethod dan parameternya saja (jika ada). Isi dari method akan dibuat ulang di dalam class yang
menggunakan interface.
Jika kita menganggap abstract class sebagai kerangka atau blue print dari class-class lain,
makainterface adalah implementasi method yang harus tersedia dalam sebuah objek. Interface tidak
bisa disebut sebagai kerangka class.
Menyambung analogi kita tentang class komputer, interface bisa dicontohkan dengan mouse, atau
keyboard. Di dalam interface mouse, kita bisa membuat method seperti klik_kiri(),
klik_kanan(), dandouble_klik(). Jika class laptop menggunakan interface mouse, maka class tersebut
harus membuat ulang method klik_kiri(), klik_kanan(), dan double_klik().

Cara Membuat Interface dalam PHP


Untuk membuat Interface di dalam PHP, kita menulisnya mirip seperti membuat class, tetapi
menggunakan keyword interface, seperti contoh berikut:
<?php
interface mouse
{
//...isi dari interface mouse
}
?>

Isi dari interface adalah signature method (nama dan parameter method):
<?php
interface
public
public
public
public
}
?>

mouse{
function
function
function
function

klik_kanan();
klik_kiri();
scroll();
double_klik();

256 | P a g e

http://www.duniailkom.com_________________________________________________________
Untuk menggunakan method kedalam class, kita menggunakan keyword implements, seperti contoh
berikut:
<?php
interface mouse{
public function klik_kanan();
public function klik_kiri();
}
class laptop implements mouse{
//... isi dari class laptop
}
class pc implements mouse{
//... isi dari class pc
}
?>

Interface adalah perjanjian method, dimana jika sebuah class menggunakan interface, maka di dalam
class tersebut harus tersedia implementasi dari method tersebut.
Jika di dalam interface mouse terdapat signature method klik_kanan(), maka di dalam class laptop
yang menggunakan interface mouse, harus terdapat method klik_kanan(). Berikut contoh kode
PHPnya:
<?php
interface mouse{
public function klik_kanan();
public function klik_kiri();
}
class laptop implements mouse{
public function klik_kanan(){
return "Klik Kanan...";
}
public function klik_kiri(){
return "Klik Kiri...";
}
}
$laptop_baru = new laptop();
echo $laptop_baru->klik_kanan();
// Klik Kanan...
?>

Apabila kita tidak membuat ulang salah satu method yang ada di interface, PHP akan
mengeluarkanerror:
<?php
interface mouse{
public function klik_kanan();
public function klik_kiri();
}
class laptop implements mouse{
public function klik_kanan(){
return "Klik Kanan...";
}
}
$laptop_baru = new laptop();
// Fatal error: Class laptop contains 1 abstract method
// and must therefore be declared abstract

257 | P a g e

http://www.duniailkom.com_________________________________________________________
// or implement the remaining methods (mouse::klik_kiri)
?>

Method Interface Harus di set Sebagai Public


Sesuai dengan tujuannya untuk membuat interface/antar muka bagi class, method di dalam
perancangan interface harus memiliki hak akses public, atau tidak ditulis sama sekali (dimana PHP
akan menganggapnya sebagai public). Jika kita mengubah hak akses method di
dalam interfacemenjadi private atau protected, PHP akan mengeluarkan error:
<?php
interface mouse{
public function klik_kanan();
protected function klik_kiri();
}
class laptop implements mouse{
public function klik_kanan(){
return "Klik Kanan...";
}
public function klik_kiri(){
return "Klik Kiri...";
}
}
$laptop_baru = new laptop();
// Fatal error: Access type for interface
// method mouse::klik_kiri() must be omitted
?>

Di dalam class yang menggunakan interface, method yang berasal dari interface juga harus memiliki
hak akses public. Kita tidak bisa mengubahnya menjadi protected atau private.
<?php
interface mouse{
public function klik_kanan();
public function klik_kiri();
}
class laptop implements mouse{
public function klik_kanan(){
return "Klik Kanan...";
}
protected function klik_kiri(){
return "Klik Kiri...";
}
}
$laptop_baru = new laptop();
// Fatal error: Access level to laptop::klik_kiri()
// must be public (as in class mouse)
?>

Dalam contoh diatas, saya mengubah hak akses method klik_kiri() menjadi protected di dalam class
laptop. Hal ini akan menghasilkan error.

Interface bisa di Turunkan (Inherit)


258 | P a g e

http://www.duniailkom.com_________________________________________________________
Di dalam PHP, interface bisa diturunkan kedalam interface lain. Prosesnya mirip dengan
penurunanclass, yakni dengan menggunakan kata kunci extends:
<?php
interface mouse{
public function klik_kanan();
public function klik_kiri();
}
interface mouse_gaming extends mouse{
public function ubah_dpi();
}
class laptop implements mouse_gaming{
public function klik_kanan(){
return "Klik Kanan...";
}
public function klik_kiri(){
return "Klik Kiri...";
}
public function ubah_dpi(){
return "Ubah settingan DPI mouse";
}
}
$laptop_baru = new laptop();
echo $laptop_baru->ubah_dpi();
// Ubah settingan DPI mouse
?>

Interface Bisa Memiliki Konstanta


Dalam PHP, Interface bisa memiliki konstanta . Berikut adalah contoh penggunaan konstanta di dalam
interface:
<?php
interface mouse{
const JENIS = "Laser Mouse";
public function klik_kanan();
public function klik_kiri();
}
echo mouse::JENIS;
// Laser Mouse
?>

Untuk
mengakses
konstanta
nama_interface::nama_konstanta.

dari

interface,

kita

menggunakan

perintah

Interface Tidak Bisa Memiliki Method normal


Salah satu yang membedakan interface dengan abstract class adalah kita tidak bisa membuat method
biasa di dalam Interface. Contoh berikut akan menghasilkan error:
<?php
interface mouse{
public function klik_kanan();
public function klik_kiri(){

259 | P a g e

http://www.duniailkom.com_________________________________________________________
return "Klik Kiri...";
}
}
class laptop implements mouse{
public function klik_kanan(){
return "Klik Kanan...";
}
}
$laptop_baru = new laptop();
// Fatal error: Interface function
// mouse::klik_kiri() cannot contain body
?>

Sebuah Class Bisa Menggunakan Banyak Interface


Perbedaan lain antara Interface dengan Abstract Class adalah: Sebuah class bisa menggunakan lebih
dari 1 interface, sedangkan untuk abstract class, kita hanya bisa menggunakan 1 abstract class dalam
sekali penurunan class.
Untuk menggunakan lebih dari 1 interface, kita tinggal menuliskan semua interface setelah
keywordimplements. Setiap nama interface dipisahkan dengan tanda koma. Berikut contoh
penggunaan 2 buah interface di dalam PHP:
<?php
interface mouse{
public function klik_kanan();
public function klik_kiri();
}
interface keyboard{
public function tekan_enter();
}
class laptop implements mouse, keyboard{
public function klik_kanan(){
return "Klik Kanan...";
}
public function klik_kiri(){
return "Klik Kiri...";
}
public function tekan_enter(){
return "Tekan Tombol Enter...";
}
}
$laptop_baru = new laptop();
echo $laptop_baru->tekan_enter();
// Tekan Tombol Enter...
?>

Dalam contoh diatas saya membuat dua buah interface, yakni mouse dan keyboard. Kedua interfaceini
kemudian digunakan oleh class laptop.

Fungsi Interface dalam Pemrograman Objek


260 | P a g e

http://www.duniailkom.com_________________________________________________________
Jika anda telah mempelajari abstract class dalam tutorial kita sebelumnya, sedikit banyak kita bisa
memahami fungsi interface jika dibandingkan dengan fungsi abstract class. Kedua konsep ini sering
membuat bingung karena mirip dalam implementasinya.
Interface lebih berperan untuk menyeragamkan method. Ia tidak masuk kedalam struktur class
seperti abstract class. Jika kita menggunakan abstract class komputer sebagai konsep class untuk
kemudian diturunkan kepada class lain seperti class laptop, class pc, dan class netbook, maka interface
hanya penyedia method. Interface tidak termasuk kedalam pewarisan class.
Object Interface dan Abstract Class merupakan implementasi dari konsep pemrograman objek yang
disebut sebagai Polimorfisme. Pengertian Polimorfisme atau polymorphism, akan kita bahas dalam
tutorial OOP PHP selanjutnya.

Tutorial Belajar OOP PHP Part 17: Pengertian Polimorfisme dalam


Pemrograman Objek PHP
Abstract Class dan Object Interfaces yang kita pelajari dalam 2 tutorial sebelum ini merupakan
implementasi dari konsep pemrograman berbasis objek yang dinamakan Polimorfisme. Dalam tutorial
OOP PHP kali ini, kita akan membahas pengertian polimorfisme dalam pemrograman objek PHP,
disertai contoh penggunaannya.

Pengertian Polimorfisme
Dari segi bahasa, Polimorfisme (bahasa inggris: Polymorphism) berasal dari dua kata bahasa latin
yakni poly dan morph. Poly berarti banyak, dan morph berarti bentuk. Polimorfisme berarti banyak
bentuk (wikipedia).
Di dalam pemrograman objek, polimorfisme adalah konsep dimana terdapat banyak class yang
memiliki signature method yang sama. Implementasi dari method-method tersebut diserahkan
kepada tiap class, akan tetapi cara pemanggilan method harus sama. Agar kita dapat
memaksakansignature method yang sama pada banyak class, class tersebut harus diturunkan dari
sebuahabstract class atau object interface.
Sebagai contoh, berikut adalah kode PHP yang mengimplementasikan konsep polimorfisme:
<?php
// buat abstract class
abstract class komputer{
// buat abstract method
abstract public function booting_os();
}
class laptop extends komputer{
public function booting_os(){
return "Proses Booting Sistem Operasi Laptop";
}
}
class pc extends komputer{
public function booting_os(){
return "Proses Booting Sistem Operasi PC";
}
}
class chromebook extends komputer{
public function booting_os(){

261 | P a g e

http://www.duniailkom.com_________________________________________________________
return "Proses Booting Sistem Operasi Chromebook";
}
}
// buat objek dari class diatas
$laptop_baru = new laptop();
$pc_baru = new pc();
$chromebook_baru = new chromebook();
// buat fungsi untuk memproses objek
function booting_os_komputer($objek_komputer){
return $objek_komputer->booting_os();
}
// jalankan fungsi
echo booting_os_komputer($laptop_baru);
echo "<br />";
echo booting_os_komputer($pc_baru);
echo "<br />";
echo booting_os_komputer($chromebook_baru);
?>

Contoh kode diatas cukup panjang, namun jika anda mengikuti tutorial OOP PHP sebelumnya
(tentang abstract class), maka kode diatas akan bisa dipahami dengan baik.
Pada awal program, saya membuat abstract class komputer yang kemudian diturunkan kedalam 3
class lain, yakni: class laptop, class pc dan class chromebook.
Abstract
class komputer memiliki abstract method booting_os(), yang harus diimplementasikan ulang pada tiap
class yang diturunkan dari class komputer. Setelah pendefenisian class, saya membuat 3 objek dari
masing-masing class.
Perhatikan bahwa setelah pembuatan objek dari masing-masing class, saya membuat fungsi
booting_os_komputer(). Fungsi ini berperan untuk memanggil method-method dari setiap class.
Konsep polimorfisme dari contoh diatas adalah, fungsi booting_os_komputer() akan selalu berhasil
dijalankan, selama argumen yang diberikan berasal dari class yang diturunkan dari class abstract
komputer.

Peran Abstract Class dan Interface dalam Polimorfisme


Baik abstract class maupun interface bisa digunakan untuk membuat banyak class dengan method
yang sama. Bahkan keduanya sering digunakan secara bersama-sama.
Berikut adalah revisi kode program kita sebelumnya dengan menggunakan abstract
class daninterface:
<?php
// buat abstract class
abstract class komputer{
// buat abstract method
abstract public function booting_os();
}
interface mouse{
public function double_klik();
}
class laptop extends komputer implements mouse{
public function booting_os(){
return "Proses Booting Sistem Operasi Laptop";

262 | P a g e

http://www.duniailkom.com_________________________________________________________
}
public function double_klik(){
return "Double Klik Mouse Laptop";
}
}
class pc extends komputer implements mouse{
public function booting_os(){
return "Proses Booting Sistem Operasi PC";
}
public function double_klik(){
return "Double Klik Mouse PC";
}
}
class chromebook extends komputer implements mouse{
public function booting_os(){
return "Proses Booting Sistem Operasi Chromebook";
}
public function double_klik(){
return "Double Klik Mouse Chromebook";
}
}
// buat objek dari class diatas
$laptop_baru = new laptop();
$pc_baru = new pc();
$chromebook_baru = new chromebook();
// buat fungsi untuk memproses objek
function booting_os_komputer($objek_komputer){
return $objek_komputer->booting_os();
}
function double_klik_komputer($objek_komputer){
return $objek_komputer->double_klik();
}
// jalankan fungsi
echo booting_os_komputer($laptop_baru);
echo "<br />";
echo double_klik_komputer($laptop_baru);
echo "<br />";=-?
echo "<br />";
echo
echo
echo
echo
echo

booting_os_komputer($pc_baru);
"<br />";
double_klik_komputer($pc_baru);
"<br />";
"<br />";

echo booting_os_komputer($chromebook_baru);
echo "<br />";
echo double_klik_komputer($chromebook_baru);
?>

Pada kode program diatas, saya membuat 1 abstract class: komputer, dan 1 interface: mouse.
Keduanya kemudian di turunkan kepada 3 class: class laptop, class pc, dan class chromebook.

263 | P a g e

http://www.duniailkom.com_________________________________________________________
Selama sebuah class diturunkan dari abstract class komputer, dan menggunakan interface mouse,
fungsi booting_os_komputer() dan fungsi double_klik_komputer() akan selalu berhasil di jalankan,
terlepas dari apapun nama objek dan implementasi method yang digunakan.
Konsep polimorfisme yang kita bahas dalam tutorial ini bertujuan untuk membuat struktur pola dari
class dan turunannya. Lebih jauh lagi, polimorfisme menekankan alur kode program yang terorganisir
untuk mengurangi adanya perulangan kode program.

264 | P a g e

Anda mungkin juga menyukai