Anda di halaman 1dari 371

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 integerumum 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 $umur; //21


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

http://www.duniailkom.com_________________________________________________________
____
?>
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
?>

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 jangkauanLONG, anda mungkin mendapat hasil
yang berbeda.
Untuk mengetahui nilai maksimal tipe data integer pada komputer, PHP
menyediakan konstantaPHP_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 datainteger digunakan juga untuk menampung angka base
16 (hexadesimal), base 8 (octal), dan base 2 (binary).

http://www.duniailkom.com_________________________________________________________
____

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, abuabu: 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
?>
Pada contoh diatas, variabel $angka_desimal dan $angka_heksadesimal samasama ditampilkan dengan nilai 31 (PHP secara tidak langsung mengkonversi
nilai $angka_heksadesimal menjadi nilaidesimal).
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.

http://www.duniailkom.com_________________________________________________________
____
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
?>

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

http://www.duniailkom.com_________________________________________________________
____
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
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 lainlain. 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 tentangoperator matematis dalam PHP.
Dalam tutorial belajar PHP ini, kita telah mempelajari tipe data float, atau disebut
juga tipe datafloating point atau real number. Selanjutnya kita akan membahas
tentang Tipe Data String dan Cara Penulisan String dalam PHP.

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"';

http://www.duniailkom.com_________________________________________________________
____

$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 $string1; echo "<br>";


echo $string2; echo "<br>";
echo $string3; echo "<br>";
echo $string4; echo "<br>";
echo $string5; echo "<br>";
echo $string6;
?>
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

http://www.duniailkom.com_________________________________________________________
____
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 tanda-tanda 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

\}

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

http://www.duniailkom.com_________________________________________________________
____
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 $string1; echo "<br \>";


echo $string2; echo "<br \>";
echo $string3; echo "<br \>";
echo $string4; echo "<br \>";
echo $string5; echo "<br \>";
echo $string6;
?>
Dan hasil kode PHP tersebut adalah:

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 />

http://www.duniailkom.com_________________________________________________________
____
Kali ini tentang pembahasan
mengenai "PHP", <br /> dan berharap
bisa dapat IPK $IPK :)
end;

echo $string1;
?>

Mari kita bahas tentang cara penulisan Heredoc.


Seperti yang terlihat dari contoh diatas, fitur Heredoc ditandai dengan tanda
<<< untuk memulaistring, 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.

http://www.duniailkom.com_________________________________________________________
____

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
mengenai "PHP", <br /> dan berharap
bisa dapat IPK $IPK :)
selesai;

echo $string1;
?>

http://www.duniailkom.com_________________________________________________________
____

Jika dilihat sekilas, tidak ada perbedaan cara penulisan


metode nowdoc dengan heredoc, namun perhatikan karakter penanda akhir
string. Kali ini saya menggunakan karakter selesai sebagaipenanda akhir
string. Dan yang membedakannya
dengan heredoc adalah, nowdocmenambahkan 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
penulisanstring 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.
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.

http://www.duniailkom.com_________________________________________________________
____
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.
ara Penulisan Boolean dalam PHP
Penulisan boolean cukup sederhana, karena hanya memiliki 2 nilai,
yakni true atau false. Penulisantrue 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:

http://www.duniailkom.com_________________________________________________________
____

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.

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 = FALSE; // false
$x = ""; // false
$x = " "; // true
$x = 1; // true
$x = -2; // true
$x = "belajar"; // true
$x = 3.14; // true
$x = array(); // false
$x = array(12); // true
$x = "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.

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",

http://www.duniailkom.com_________________________________________________________
____
4=>"Sari",)
//... dst sampai 10
?>
Cara Penulisan Array dalam PHP
PHP mendukung beberapa cara penulisan array, salah satunya dengan
menggunakankonstruktor array PHP (array language construct) sebagai berikut:
$nama_variabel = array(
key => value,
key2 => value2,
key3 => value3,
...
)
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 />";

http://www.duniailkom.com_________________________________________________________
____
echo $nama[2]; //Joko
echo "<br />";
echo $nama[3]; //Sukma
?>
Dalam contoh diatas, saya menggunakan angka integer sebagai key (1,2,3)
dan string sebagaivalue (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 array
echo $nama[1]; //Joko
echo "<br />";
echo $nama[2]; //Sukma
echo "<br />";
echo $nama[3]; //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.
<?php
// pembuatan array
$coba = array (
2=>"Andri",

http://www.duniailkom.com_________________________________________________________
____
"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.

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.

http://www.duniailkom.com_________________________________________________________
____
Dalam sesi tutorial selanjutnya, kita akan membahas operator-operator yang
dapat digunakan untuk memproses 4 tipe dasar PHP, dan juga array.
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;

http://www.duniailkom.com_________________________________________________________
____
$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.
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

http://www.duniailkom.com_________________________________________________________
____
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).
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.
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;

http://www.duniailkom.com_________________________________________________________
____
$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;

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


echo "<br \>"; //

http://www.duniailkom.com_________________________________________________________
____
echo "\$hasil2:"; var_dump($hasil2); //float(9.5)
echo "<br \>";
echo "\$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 jenis-jenis operator aritmatika dalam PHP.

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:

http://www.duniailkom.com_________________________________________________________
____

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)

http://www.duniailkom.com_________________________________________________________
____
echo "<br \>";
echo "\$hasil2:"; var_dump($hasil2); // $hasil2:int(8)
echo "<br \>";
echo "\$hasil3:"; var_dump($hasil3); // $hasil3:float(3.5)
echo "<br \>";
echo "\$hasil4:"; var_dump($hasil4); // $hasil4:int(10)
echo "<br \>";
echo "\$hasil5:"; var_dump($hasil5); // $hasil5:float(1.6)
echo "<br \>";
echo "\$hasil6:"; 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 masingmasing 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

http://www.duniailkom.com_________________________________________________________
____
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 />";

$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!

http://www.duniailkom.com_________________________________________________________
____
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) stringdalam 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.
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).

http://www.duniailkom.com_________________________________________________________
____
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)

http://www.duniailkom.com_________________________________________________________
____
$hasil3 = (true xor false);
echo '$hasil3 = ';
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 bernilaitrue!. 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.

http://www.duniailkom.com_________________________________________________________
____
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:
<?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.
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.

http://www.duniailkom.com_________________________________________________________
____
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.
Cara Penggunaan Operator Perbandingan di dalam PHP

http://www.duniailkom.com_________________________________________________________
____
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 />";
?>

http://www.duniailkom.com_________________________________________________________
____

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

http://www.duniailkom.com_________________________________________________________
____
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 Postdecrement. Perbedaan keduanya terletak pada posisi mana tanda tambah atau
kurang diletakkan.
Cara Penggunaan Operator Increment dan Decrement
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 />";

http://www.duniailkom.com_________________________________________________________
____
echo "\$a akan bernilai 6: " . $a . "<br />";

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

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

echo "<h3>Predecrement</h3>";
$a = 5;
echo "\$a = $a <br />";
echo "\$a akan bernilai 4: " . --$a . " (--\$a)<br />";
echo "\$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:

http://www.duniailkom.com_________________________________________________________
____

Terlihat bahwa Postincrement ($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 PostIncrement 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.

http://www.duniailkom.com_________________________________________________________
____
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 dariarray.

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 darikanan, 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

http://www.duniailkom.com_________________________________________________________
____
?>
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 mencopy nilai referensi dari sebuahvariabel.

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;

http://www.duniailkom.com_________________________________________________________
____
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";

http://www.duniailkom.com_________________________________________________________
____
// hasil proses: $a = 35, $b = 35
?>
Seperti yang dapat dilihat, bahwa sekarang kedua variabel ($a dan $b), seolaholah saling terikat, sehingga ketika sebuah variabel diubah nilainya, variabel yang
lain juga ikut berubah.
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

http://www.duniailkom.com_________________________________________________________
____
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:

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 />";

http://www.duniailkom.com_________________________________________________________
____
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 />";
?>

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

http://www.duniailkom.com_________________________________________________________
____
$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:
$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 da
nhttp://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.

http://www.duniailkom.com_________________________________________________________
____
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.
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 + 5;
$a = $a - 10;
echo "\$a = $a";
echo "<br />";

http://www.duniailkom.com_________________________________________________________
____
// 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 + 5menjadi $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.
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.

Tutorial Belajar PHP Part 28: Cara Mengubah Tipe Data PHP (Type
Juggling dan Type Casting)

http://www.duniailkom.com_________________________________________________________
____
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 $bsebagai 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;

http://www.duniailkom.com_________________________________________________________
____
$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?
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
?>

http://www.duniailkom.com_________________________________________________________
____
Pada baris ke -9, saya membuat echo (integer) $b, perintah ini adalah mencasting tipe data yang ada didalam variabel $b (apapun tipe datanya)
menjadi integer. Dan pada baris ke 9. saya meng-casting 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.

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

http://www.duniailkom.com_________________________________________________________
____

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 />";

http://www.duniailkom.com_________________________________________________________
____
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


var_dump((float) 3); // 3
echo "<br />";
var_dump((float) "3.45"); // 3.45
echo "<br />";
var_dump((float) "9 Naga"); //9
echo "<br />";
var_dump((float) "Naga Bonar"); // 0
echo "<br />";
var_dump((float) "Wiro Sableng 212"); //0
echo "<br />";
var_dump((float) FALSE); // 0
echo "<br />";
var_dump((float) "1FALSE"); //1
echo "<br />";
var_dump((float) array()); // 0
echo "<br />";
var_dump((float) array("data")); //1
echo "<br />";

// Konversi menjadi Boolean

http://www.duniailkom.com_________________________________________________________
____
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.
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

http://www.duniailkom.com_________________________________________________________
____
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

http://www.duniailkom.com_________________________________________________________
____
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.

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:

http://www.duniailkom.com_________________________________________________________
____
<?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 dengannested IF, seperti contoh berikut:
if (expression)
{
statement1;
if (expression)
{
statement1;
}

http://www.duniailkom.com_________________________________________________________
____
}
?>
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.

http://www.duniailkom.com_________________________________________________________
____
Berikut adalah contoh penggunaan logika ELSE dalam PHP:
<?php
$nama="Andi";

if ($nama=="Andi")
echo "Selamat Datang Andi...";
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

http://www.duniailkom.com_________________________________________________________
____
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;
}
?>
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

http://www.duniailkom.com_________________________________________________________
____
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;

http://www.duniailkom.com_________________________________________________________
____
else:
statement3;
endif
?>
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 ELSEIF 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

http://www.duniailkom.com_________________________________________________________
____
{
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";
}
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.

http://www.duniailkom.com_________________________________________________________
____
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;

http://www.duniailkom.com_________________________________________________________
____
statement2;
elseif (expression):
statement3;
else
statement4;
endif
?>
Namun untuk cara penulisan ini, kita tidak bisa memisahkan penulisan ELSEIF 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";

http://www.duniailkom.com_________________________________________________________
____
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.
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";

http://www.duniailkom.com_________________________________________________________
____
}
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 :
echo "Angka Tiga";

http://www.duniailkom.com_________________________________________________________
____
break;
case 4 :
echo "Angka Empat";
break;
case 5 :
echo "Angka Lima";
break;
default :
echo "Angka diluar jangkauan";
break;
}
?>
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

http://www.duniailkom.com_________________________________________________________
____
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 Nol ";
case 1 :
echo "Angka Satu ";
case 2 :
echo "Angka Dua ";
case 3 :
echo "Angka Tiga ";
}
?>
Program diatas akan memeriksa nilai dari $a, dan memberikan output tergantung
kepada nilai $atersebut. 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.

http://www.duniailkom.com_________________________________________________________
____
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 Nol ";
break;
case 1 :
echo "Angka Satu ";
break;
case 2 :
echo "Angka Dua ";
break;
case 3 :
echo "Angka Tiga ";
break;
}
?>
Selain kata kunci break, PHP menyediakan kata kunci default untuk alur switch.
Kata kunci ini berfungsi seperti ELSE di dalam struktur IF, yakni kondisi dimana
seluruh case untuk switch tidak ada yang cocok. Kata kunci default ini diletakkan di
akhir dari switch.
Untuk contoh kita diatas, saya akan menambahkan bagian default sebagai
perintah yang akan dijalankan jika nilai dari variabel $a duluar dari angka 0-5.
Berikut kode PHP nya:
<?php
$a=9;
switch ($a)

http://www.duniailkom.com_________________________________________________________
____
{
case 0:
echo "Angka Nol ";
break;
case 1 :
echo "Angka Satu ";
break;
case 2 :
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;

http://www.duniailkom.com_________________________________________________________
____
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;
case "tiga" :

http://www.duniailkom.com_________________________________________________________
____
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 halhal 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.
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.

http://www.duniailkom.com_________________________________________________________
____
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 />";
}
?>

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

http://www.duniailkom.com_________________________________________________________
____
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 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 terusmenerus 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 />";
}

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

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.
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 0100, namun untuk kelipatan 5, seperti: 0.5.10..dst, sampai dengan 100.
Berikut adalah contoh kode PHPnya:
<?php

http://www.duniailkom.com_________________________________________________________
____
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.
Kita juga bisa membuat perluangan dengan kondisi mundur, seperti contoh kode
PHP berikut ini:
<?php
for ($i= 20; $i >= 1; $i--)

http://www.duniailkom.com_________________________________________________________
____
{
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

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

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++) :

http://www.duniailkom.com_________________________________________________________
____
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.
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:

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

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;

http://www.duniailkom.com_________________________________________________________
____
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:
<?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

http://www.duniailkom.com_________________________________________________________
____
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;
}
?>

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++;
}

http://www.duniailkom.com_________________________________________________________
____

Dalam kode diatas, saya


membuat perulangan yang sama seperti contoh nested loop pada
tutorialperulangan 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 lebihmudah 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.

http://www.duniailkom.com_________________________________________________________
____
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.
Tutorial Belajar PHP Part 35: Pengertian dan Cara Penulisan Perulangan Do-While
dalam PHP
Struktur dasar perulangan terakhir yang akan kita bahas adalah perulangan
do-while. Di dalam tutorial Pengertian dan Cara Penulisan Struktur Perulangan DoWhile 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 lokasipengecekan 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

http://www.duniailkom.com_________________________________________________________
____
{
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:
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 conditionbernilai 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 />";

http://www.duniailkom.com_________________________________________________________
____
$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.
Tutorial Belajar PHP Part 36: Fungsi dan Cara Penulisan Perintah Break Dalam
Perulangan PHP
Dalam 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.

http://www.duniailkom.com_________________________________________________________
____
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 />";
}

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)
{

http://www.duniailkom.com_________________________________________________________
____
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.

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 />";
}

http://www.duniailkom.com_________________________________________________________
____

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;
}
echo "<br />";
}

http://www.duniailkom.com_________________________________________________________
____

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 />";
}

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.
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)

http://www.duniailkom.com_________________________________________________________
____
{
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
for ($i=0; $i <10; $i++)
{
for ($j=0; $j <10; $j++)
{
if ($i==4)

http://www.duniailkom.com_________________________________________________________
____
{
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.

http://www.duniailkom.com_________________________________________________________
____
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++)


{
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 />";

http://www.duniailkom.com_________________________________________________________
____
}
?>
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.

$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

http://www.duniailkom.com_________________________________________________________
____
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 />";
}
?>

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.

Cara Pembuatan Fungsi PHP:


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

http://www.duniailkom.com_________________________________________________________
____
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 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

http://www.duniailkom.com_________________________________________________________
____
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
?>
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

http://www.duniailkom.com_________________________________________________________
____
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

http://www.duniailkom.com_________________________________________________________
____
//pembuatan fungsi
function perkalian($angka1, $angka2)
{
$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.SParameter 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 di-kembalikan 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*jarijari*jari-jari. Berikut adalah program untuk menghitung luas lingkaran:

http://www.duniailkom.com_________________________________________________________
____
<?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 mencompile 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
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.

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
?>

http://www.duniailkom.com_________________________________________________________
____
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()
{
$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 ke8: 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.

http://www.duniailkom.com_________________________________________________________
____
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.
Namun jika sebuah variabel dinyatakan sebagai static variabel, maka nilai
variabel tersebut akan tetap dipertahankan walaupun fungsi telah selesai

http://www.duniailkom.com_________________________________________________________
____
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 coba();
echo coba();
echo coba();
echo 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.

http://www.duniailkom.com_________________________________________________________
____
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 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 argumenmerupakan 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)

http://www.duniailkom.com_________________________________________________________
____

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
return "Tipe data argumen harus berupa angka";

http://www.duniailkom.com_________________________________________________________
____
}
}

//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. Fungsiis_numeric() dan is_int() akan menghasilkan nilai TRUE jika

http://www.duniailkom.com_________________________________________________________
____
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, 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.
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

http://www.duniailkom.com_________________________________________________________
____
?>
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:
function nama_fungsi ($parameter1=nilai_default1,$parameter2=nilai_default2)
{
// proses fungsi
return nilai_akhir;
}

nama_fungsi adalah nama dari fungsi yang akan dibuat

http://www.duniailkom.com_________________________________________________________
____

$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 />";
?>

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)

http://www.duniailkom.com_________________________________________________________
____

//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.
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.

http://www.duniailkom.com_________________________________________________________
____

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 />";


echo "<br />";
return;
}

echo "Rincian dari fungsi penambahan(1,2) : ";

http://www.duniailkom.com_________________________________________________________
____
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.

http://www.duniailkom.com_________________________________________________________
____
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
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 argumen-argumen 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 />";

http://www.duniailkom.com_________________________________________________________
____

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);


?>

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 fungsistrtolower(). Fungsi ini membutuhkan 1 buah argumen, yakni
string yang akan diubah.
Berikut contoh penggunaan fungsi strtolower():

http://www.duniailkom.com_________________________________________________________
____
<?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";

if (strtolower($dari_user) == strtolower($dari_database)) {
echo "Sama";

http://www.duniailkom.com_________________________________________________________
____
}
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;

http://www.duniailkom.com_________________________________________________________
____
// 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.";
$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;

http://www.duniailkom.com_________________________________________________________
____
// 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 fungsiucwords(), 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.
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-092015. 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?

http://www.duniailkom.com_________________________________________________________
____
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
?>
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:

http://www.duniailkom.com_________________________________________________________
____
<?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 ke8 (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 ke-9) 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
?>

http://www.duniailkom.com_________________________________________________________
____
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
?>
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>";

http://www.duniailkom.com_________________________________________________________
____
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) {

http://www.duniailkom.com_________________________________________________________
____
echo "Nama Sama";
}
else {
echo "Nama Beda";
}
// hasil: Nama Beda
?>
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.

http://www.duniailkom.com_________________________________________________________
____

\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:
<?php
$nama = "__andi__";
$trim_nama = trim($nama);
echo $trim_nama; // "__andi__"
echo "<br>";

http://www.duniailkom.com_________________________________________________________
____

$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

http://www.duniailkom.com_________________________________________________________
____
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,"_");
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().

http://www.duniailkom.com_________________________________________________________
____
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";

http://www.duniailkom.com_________________________________________________________
____
$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"
// }
?>
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

http://www.duniailkom.com_________________________________________________________
____
$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
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.

http://www.duniailkom.com_________________________________________________________
____

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
?>

http://www.duniailkom.com_________________________________________________________
____
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 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 fungsinumber_format(), seperti contoh
berikut:
<?php
$angka = 1999.12345;
$angka_format = number_format($angka,2,",",".");
echo $angka_format;
// 1.999,12
?>

http://www.duniailkom.com_________________________________________________________
____
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 ] )

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.

http://www.duniailkom.com_________________________________________________________
____

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)
?>

http://www.duniailkom.com_________________________________________________________
____
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
?>
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
?>

http://www.duniailkom.com_________________________________________________________
____
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 ke3:
<?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

http://www.duniailkom.com_________________________________________________________
____
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()
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

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

<br>

http://www.duniailkom.com_________________________________________________________
____
<?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.

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.

http://www.duniailkom.com_________________________________________________________
____

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 extensiontersedia
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:

http://www.duniailkom.com_________________________________________________________
____
1. Koneksi MySQL dengan mysql extension
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 fungsi-fungsi
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 fitur-fitur 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:

http://www.duniailkom.com_________________________________________________________
____

Cara Penulisan mysql extension, mysqli extension, dan PDO (PHP Data
Objects)
Untuk mengetahui secara sekilas perbedaan cara pengaksesan database MySQL
menggunakanmysql 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");

http://www.duniailkom.com_________________________________________________________
____
$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.
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.

http://www.duniailkom.com_________________________________________________________
____
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.

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.

http://www.duniailkom.com_________________________________________________________
____

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 dengan men-klik
menu phpinfo() dari halaman localhost dari XAMPP. Dalam
halaman phpinfo(),carilah bagian mysql seperti tampilan berikut:

http://www.duniailkom.com_________________________________________________________
____
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
fungsimysql_connect().

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 koneksidengan MySQL. Link
koneksi ini akan dibutuhkan sepanjang program PHP-MySQL nantinya. Di
dalam PHP, variabel $link ini dikenal dengan istilah handler, yakni variabel
yang meng-handlekoneksi ke MySQL.

http://www.duniailkom.com_________________________________________________________
____

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, andidan 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().
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";

http://www.duniailkom.com_________________________________________________________
____
}
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.

http://www.duniailkom.com_________________________________________________________
____
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.
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.

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

http://www.duniailkom.com_________________________________________________________
____
if ($link)
{
//koneksi berhasil
echo "Koneksi dengan MySQL berhasil";
}
else
{
//koneksi gagal
die("Koneksi dengan MySQL gagal");
echo "Pesan ini tidak akan pernah ditampilkan";
}
?>
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

http://www.duniailkom.com_________________________________________________________
____
//...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.
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

http://www.duniailkom.com_________________________________________________________
____
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))
{

http://www.duniailkom.com_________________________________________________________
____
echo $row[0];
echo "<br />";
}
?>
Jika anda menjalankan perintah diatas, didalam web browser akan tampil semua
nama database yang ada dalam MySQL.
Pada baris ke-3 dari program diatas, saya membuat koneksi dengan MySQL
menggunakan fungsimysql_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.
Fungsimysql_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().

http://www.duniailkom.com_________________________________________________________
____
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.
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 valuenya (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.

http://www.duniailkom.com_________________________________________________________
____
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 databaseuniversitas, 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");
}

http://www.duniailkom.com_________________________________________________________
____
//buat tabel mahasiswa_ilkom
$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);

http://www.duniailkom.com_________________________________________________________
____
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 pesanDatabase mahasiswa gagal dibuat. Hal ini terjadi karena terdapat
duplikasi database di dalamMySQL, sehingga kode PHP akan berhenti pada baris
ke 15 karena fungsi die().
Cara Menampilkan Baris Tabel Dengan Fungsi mysql_fetch_row
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");
}

http://www.duniailkom.com_________________________________________________________
____
//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
fungsimysql_select_db(universitas). Anda bebas ingin menggunakan salah
satunya.
Pada baris ke-20 saya menjalankan query SELECT untuk menampilkan seluruh isi
tabelmahasiswa_ilkom. Cara menjalankannya adalah dengan
fungsi mysql_query() dengan perintah query: SELECT * FROM
mahasiswa_ilkom. Hasil fungsi ditampung kedalam variabel $result.

http://www.duniailkom.com_________________________________________________________
____
Variabel $result selanjutnya diproses dengan fungsi mysql_fetch_row($result),
dan disimpan dalam variabel $row.
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]";

http://www.duniailkom.com_________________________________________________________
____
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]";
?>

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 ke2 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','');

http://www.duniailkom.com_________________________________________________________
____

//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_ilkomdenganmelakukan 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','');

http://www.duniailkom.com_________________________________________________________
____

//gunakan database universitas


$result=mysql_query('USE universitas');

//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 akanmembahas cara penggunaan fungsi mysql_fetch_array(),
dan perbedaanya denganmysql_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:

http://www.duniailkom.com_________________________________________________________
____
$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.

Perbedaan mysql_fetch_array: MYSQL_NUM, MYSQL_ASSOC dan


MYSQL_BOTH
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().

http://www.duniailkom.com_________________________________________________________
____
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 />";
}
?>

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
tutorialmysql_fetch_row(), hanya pada baris ke 10 saya menggantinya dengan
fungsimysql_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');

http://www.duniailkom.com_________________________________________________________
____
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 konstantaMYSQL_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
adalahtempat_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:

http://www.duniailkom.com_________________________________________________________
____
<?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.

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)

http://www.duniailkom.com_________________________________________________________
____
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 />";

http://www.duniailkom.com_________________________________________________________
____
echo "Pesan error: ".mysql_error();
?>

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 adalahmysql_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

http://www.duniailkom.com_________________________________________________________
____
$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");
}

//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 prosesoleh 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:

http://www.duniailkom.com_________________________________________________________
____

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


if (!$link)
{
die("Koneksi dengan MySQL gagal");
}

//gunakan database universitas


$result=mysql_query('USE universitas');
if (!$result)
{
die("Database mahasiswa gagal digunakan");
}

http://www.duniailkom.com_________________________________________________________
____

//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 fungsi-fungsi 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.

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))
{

http://www.duniailkom.com_________________________________________________________
____
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
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:

http://www.duniailkom.com_________________________________________________________
____

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");

http://www.duniailkom.com_________________________________________________________
____
}

//tampilkan tabel mahasiswa_ilkom


$result=mysql_query('SELECT * FROM mahasiswa_ilkom');
?>
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>Belajar PHP MySQL</title>
<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;

http://www.duniailkom.com_________________________________________________________
____
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>

http://www.duniailkom.com_________________________________________________________
____
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 dalamtutorial 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.
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:nth-child(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.

http://www.duniailkom.com_________________________________________________________
____
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().
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:
1

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

Sedangkan di dalam mysqli penulisannya menjadi:


1

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.

http://www.duniailkom.com_________________________________________________________
____
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 danobject-oriented, 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()


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

http://www.duniailkom.com_________________________________________________________
____
$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():
1

<?php

// buat koneksi dengan MySQL

$link = mysqli_connect("localhost", "root", "qwerty","universitas");

4
5

//.... proses PHP

//.... proses PHP

//.... proses PHP

8
9

// tutup koneksi

10

mysqli_close($link);

11

?>

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:
1

<?php

//buat koneksi dengan MySQL

$link=mysql_connect('localhost','root','');

4
5

//gunakan database universitas

http://www.duniailkom.com_________________________________________________________
____
6

$result=mysql_query('USE universitas',$link);

7
8

//tampilkan tabel mahasiswa_ilkom

$result=mysql_query('SELECT * FROM mahasiswa_ilkom',$link);

10

?>

Sedangkan dengan menggunakan mysqli extension, berikut adalah perubahan cara


penggunaannya:
1

<?php

// buat koneksi dengan MySQL, gunakan database: universitas

$link = mysqli_connect("localhost", "root", "", "universitas");

4
5

// 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(), danmysqli_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 databaseuniversitas. Tabel ini kita buat sewaktu
membahas tentang fungsi mysql_fetch_row.
Pertama, mari kita lihat cara menampilkan data MySQL dengan
fungsi mysqli_fetch_row():
1

<?php

// buat koneksi dengan MySQL, gunakan database: universitas

$link = mysqli_connect("localhost", "root", "", "universitas");

http://www.duniailkom.com_________________________________________________________
____
4
5

// jalankan query

$result = mysqli_query($link, "SELECT * FROM mahasiswa_ilkom");

7
8

// tampilkan query

while ($row=mysqli_fetch_row($result))

10

11

echo "$row[0] $row[1] $row[2] $row[3] $row[4]";

12

echo "<br />";

13

14

?>

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 diCara Menampilkan Tabel MySQL dari
PHP dengan fungsi mysql_fetch_row.
Berikutnya, kita bahas cara menampilkan data MySQL dengan
fungsi mysqli_fetch_array():
1

<?php

// buat koneksi dengan MySQL, gunakan database: universitas

$link = mysqli_connect("localhost", "root", "", "universitas");

4
5

// jalankan query

$result = mysqli_query($link, "SELECT * FROM mahasiswa_ilkom");

7
8

// tampilkan query

while ($row=mysqli_fetch_array($result,MYSQLI_ASSOC))

10

11

echo $row['nim']." ".$row['nama']." ".$row['umur']." ";

12

echo $row['tempat_lahir']." ".$row['IPK'];

13

echo "<br />";

14

http://www.duniailkom.com_________________________________________________________
____
15

?>

Sedikit perbedaan antara fungsi mysqli_fetch_array() dengan fungsi


kembarannyamysql_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:
1

<?php

// buat koneksi dengan MySQL, gunakan database: universitas

$link = mysqli_connect("localhost", "root", "", "universitas");

4
5

// jalankan query

$result = mysqli_query($link, "SELECT * FROM mahasiswa_ilkom");

7
8

// tampilkan query

while ($row=mysqli_fetch_object($result))

10

11

echo $row->nim." ".$row->nama." ".$row->umur." ";

12

echo $row->tempat_lahir." ".$row->IPK;

13

echo "<br />";

14

15

?>

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

http://www.duniailkom.com_________________________________________________________
____
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.

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.

http://www.duniailkom.com_________________________________________________________
____
Berikut adalah cara membuat koneksi mysqli di localhost untuk user root
dengan password qwerty:
1
2
3

<?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:
1
2
3

<?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:
1

<?php

// buat koneksi dengan MySQL

$link = new mysqli("localhost", "root", "qwerty","universitas");

4
5

//.... Proses PHP

//.... Proses PHP

//.... Proses PHP

8
9

// tutup koneksi

10

$link->close();

11

?>

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

http://www.duniailkom.com_________________________________________________________
____
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:
1

<?php

// buat koneksi dengan MySQL, gunakan database: universitas

$link = new mysqli("localhost", "root", "qwerty", "universitas);

4
5

// 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() danfetch_object(). Cara penggunaan ketiga
method ini hampir sama dengan padanan fungsinya di procedural style, yakni
dengan fungsi mysqli_fetch_row(),
mysqli_fetch_array(), danmysqli_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:
1

<?php

// buat koneksi dengan MySQL, gunakan database: universitas

$link = new mysqli("localhost", "root", "qwerty", "universitas");

4
5

// jalankan query

$result = $link->query("SELECT * FROM mahasiswa_ilkom");

7
8

// tampilkan query

while ($row= $result->fetch_row())

http://www.duniailkom.com_________________________________________________________
____
10

11

echo "$row[0] $row[1] $row[2] $row[3] $row[4]";

12

echo "<br />";

13

14

?>

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:
1

<?php

// buat koneksi dengan MySQL, gunakan database: universitas

$link = new mysqli("localhost", "root", "qwerty", "universitas");

4
5

// jalankan query

$result = $link->query("SELECT * FROM mahasiswa_ilkom");

7
8

// tampilkan query

while ($row=$result->fetch_array(MYSQLI_ASSOC))

10

11

echo $row['nim']." ".$row['nama']." ".$row['umur']." ";

12

echo $row['tempat_lahir']." ".$row['IPK'];

13

echo "<br />";

14

15

?>

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().

http://www.duniailkom.com_________________________________________________________
____
Cara ketiga yang akan kita bahas untuk menampilkan data mysqli, adalah dengan
methodfetch_object(). Berikut contoh pengunaanya:
1

<?php

// buat koneksi dengan MySQL, gunakan database: universitas

$link = new mysqli("localhost", "root", "qwerty", "universitas");

4
5

// jalankan query

$result = $link->query("SELECT * FROM mahasiswa_ilkom");

7
8

// tampilkan query

while ($row=$result->fetch_object())

10

11

echo $row->nim." ".$row->nama." ".$row->umur." ";

12

echo $row->tempat_lahir." ".$row->IPK;

13

echo "<br />";

14

15

?>

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 akan mempelajari fungsi dan property yang bisa digunakan
untuk menampilkan pesan kesalahan (error) di dalam mysqli.

http://www.duniailkom.com_________________________________________________________
____
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 fungsi-fungsi. 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:
1

<?php

// buat koneksi dengan MySQL, gunakan database: universitas

$link = mysqli_connect('localhost', 'root', '', 'universitas');

4
5

// cek koneksi

if (!$link) {

die('Koneksi Error : '.mysqli_connect_errno()

.' - '.mysqli_connect_error());

10
11

// koneksi berhasil

12

echo 'Koneksi Berhasil : '.mysqli_get_host_info($link)."<br />";

13
14

// tutup koneksi

http://www.duniailkom.com_________________________________________________________
____
15

mysqli_close($link);

16

?>

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 menampilkanpesan error.)
Sebagai contoh, jika saya sengaja mengubah username menjadi teman_root
(yang memang tidak ada di MySQL), maka kita bisa melihat error yang terjadi:
1

Koneksi Error : 1044

- Access denied for user ''@'localhost' to database 'universitas'.

Atau jika database saya ganti jadi universitas_tetangga:


1

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:
1

Koneksi berhasil : localhost via TCP/IP

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


hasilnya menjadi:
1

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:

http://www.duniailkom.com_________________________________________________________
____
1

<?php

// buat koneksi dengan MySQL, gunakan database: universitas

$link = mysqli_connect('localhost', 'root', '', 'universitas');

4
5

// cek koneksi

if (!$link) {

die('Koneksi Error : '.mysqli_connect_errno().

' - '.mysqli_connect_error());

10
11

// koneksi berhasil

12

echo 'Koneksi Berhasil : '.mysqli_get_host_info($link)."<br />";

13
14

// jalankan query

15

$result = mysqli_query($link,"SELECT * FROM mahasiswa_ilkom");

16
17

// cek hasil query

18

if (!$result) {

19

die('Query Error : '.mysqli_errno($link).

20

' - '.mysqli_error($link));

21

22
23

// tampilkan query

24

while ($row=mysqli_fetch_row($result)) {

25

echo "$row[0] $row[1] $row[2] $row[3] $row[4]";

26

echo "<br />";

27

28
29

// tutup koneksi

http://www.duniailkom.com_________________________________________________________
____
30

mysqli_close($link);

31

?>

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
fungsimysqli_error() digunakan untuk menampilkan pesan error yang terjadi.
Sebagai contoh, jika saya mengganti query menjadi SELECT * FROM
mahasiswa_mipa, maka hasilnya adalah sebagai berikut:
1

Query Error : 1146 - Table 'universitas.mahasiswa_mipa' doesn't exist

Dimana dalam database universitas yang saya gunakan, memang tidak terdapat
tabelmahasiswa_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:
1

<?php

// buat koneksi dengan MySQL, gunakan database: universitas

$mysqli = new mysqli("localhost", "root", "","universitas");

4
5

// cek koneksi

if ($mysqli->connect_errno) {

die('Koneksi Error: '.$mysqli->connect_errno.

' - '. $mysqli->connect_error);

http://www.duniailkom.com_________________________________________________________
____
9

10
11

// koneksi berhasil

12

echo 'Koneksi Berhasil : '.$mysqli->host_info."<br />";

13
14

// jalankan query

15

$result = $mysqli->query("SELECT * FROM mahasiswa_ilkom");

16
17

// cek hasil query

18

if ($mysqli->errno) {

19

die('Query Error : '.$mysqli->errno.' - '.$mysqli->error);

20

21

// tampilkan query

22

while ($row= $result->fetch_row()) {

23

echo "$row[0] $row[1] $row[2] $row[3] $row[4]";

24

echo "<br />";

25

26
27

// tutup koneksi

28

$mysqli->close();

29

?>

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 apaapa 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).
Anda bisa menguji kode diatas dengan melakukan kesalahan, dan melihat apakah
kode program diatas bisa menangkap error yang terjadi.

http://www.duniailkom.com_________________________________________________________
____

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

nama='Neil Situmorang'");

Dengan prepared statements, query tersebut akan dipisah antara perintah query:
SELECT dengan data-nya yakni Neil Situmorang.

http://www.duniailkom.com_________________________________________________________
____
Proses Pembuatan Prepared Statement MySQL
Proses pembuatan prepared statements membutuhkan 3 langkah: Prepared,
Bind, dan Execute.
Pada proses pertama: prepared, kita mempersiapkan query yang akan dijalankan,
tetapi tanpa data. Bagian dimana data berada digantikan dengan tanda tanya (?),
seperti berikut ini:
1

"SELECT * FROM mahasiswa_ilkom WHERE nama=?"

atau
1

"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:
1

<?php

// buat koneksi dengan MySQL, gunakan database: universitas

http://www.duniailkom.com_________________________________________________________
____
3

$link = mysqli_connect('localhost', 'root', '', 'universitas');

4
5

// cek koneksi

if (!$link) {

die('Koneksi Error : '.mysqli_connect_errno().

' - '.mysqli_connect_error());

10
11

// buat prepared statements

12

$stmt = mysqli_prepare($link, "SELECT * FROM mahasiswa_ilkom WHERE nama=?");

13
14

// siapkan "data" query

15

$nama_mhs="Neil Situmorang";

16
17

// hubungkan "data" dengan prepared statements: bind

18

mysqli_stmt_bind_param($stmt, "s", $nama_mhs);

19
20

// jalankan query: execute

21

mysqli_stmt_execute($stmt);

22
23

// cek hasil query

24

if (!$stmt) {

25

die('Query Error : '.mysqli_errno($link).

26

' - '.mysqli_error($link));

27

28
29

// ambil hasil query

30

$result=mysqli_stmt_get_result($stmt);

31

http://www.duniailkom.com_________________________________________________________
____
32

// tampilkan hasil query

33

while ($row= $result->fetch_row()) {

34

echo "$row[0] $row[1] $row[2] $row[3] $row[4]";

35

echo "<br />";

36

37
38

// tutup statements

39

mysqli_stmt_close($stmt);

40
41

// tutup koneksi

42

mysqli_close($link);

43

?>

Jika kode program diatas dijalankan, hasilnya adalah sebagai berikut:


1

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.

http://www.duniailkom.com_________________________________________________________
____
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
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:
1

<?php

// buat koneksi dengan MySQL, gunakan database: universitas

$link = mysqli_connect('localhost', 'root', '', 'universitas');

4
5

// 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:
1

<?php

http://www.duniailkom.com_________________________________________________________
____
2

// siapkan "data" query

$nama_mhs="Neil Situmorang";

4
5

// 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 fungsimysqli_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)

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():
1
2
3

<?php
mysqli_stmt_execute($stmt);
?>

Fungsi mysqli_stmt_execute() menginstruksikan kepada MySQL untuk segera


menjalankan perintah prepared statement yang telah dibuat. Sampai disini proses

http://www.duniailkom.com_________________________________________________________
____
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
fungsimysqli_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.
1

<?php

// ambil hasil query

$result=mysqli_stmt_get_result($stmt);

?>

Selanjutnya, untuk menampilkan data kita bisa menggunakan cara biasa


menggunakanmysql_fetch_row() atau mysql_fetch_array():
1

<?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:
1

<?php

// buat koneksi dengan MySQL, gunakan database: universitas

$link = mysqli_connect('localhost', 'root', '', 'universitas');

4
5

// cek koneksi

if (!$link) {

die('Koneksi Error : '.mysqli_connect_errno().

http://www.duniailkom.com_________________________________________________________
____
8
9

' - '.mysqli_connect_error());
}

10
11

// buat prepared statements

12

$stmt = mysqli_prepare($link, "SELECT * FROM mahasiswa_ilkom WHERE nama=?");

13
14

// cek query

15

if (!$stmt) {

16

die('Query Error : '.mysqli_errno($link).

17

' - '.mysqli_error($link));

18

19
20

// siapkan "data" query

21

$nama_mhs="Neil Situmorang";

22
23

// hubungkan "data" dengan prepared statements

24

mysqli_stmt_bind_param($stmt, "s", $nama_mhs);

25
26

// jalankan query

27

mysqli_stmt_execute($stmt);

28
29

// ambil hasil query

30

$result=mysqli_stmt_get_result($stmt);

31
32

// tampilkan hasil query

33

while ($row= $result->fetch_row()) {

34

echo "$row[0] $row[1] $row[2] $row[3] $row[4]";

35

echo "<br />";

36

http://www.duniailkom.com_________________________________________________________
____
37
38

// tutup statements

39

mysqli_stmt_close($stmt);

40
41

// tutup koneksi

42

mysqli_close($link);

43

?>

Jika kode program diatas dijalankan, hasilnya adalah sebagai berikut:


1

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.
1

<?php

// buat koneksi dengan MySQL, gunakan database: universitas

$mysqli = new mysqli("localhost", "root", "","universitas");

4
5

// cek koneksi

if ($mysqli->connect_errno) {

die('Koneksi gagal: ' .$mysqli->connect_errno.

' - '.$mysqli->connect_error);

10
11

// buat prepared statements

12

$stmt = $mysqli->prepare("SELECT * FROM mahasiswa_ilkom WHERE nama=?");

13
14

// cek query

http://www.duniailkom.com_________________________________________________________
____
15

if (!$stmt) {

16

die('Query Error : '.$mysqli->errno.

17

' - '.$mysqli->error);

18

19
20

// siapkan "data" query

21

$nama_mhs="Neil Situmorang";

22
23

// hubungkan "data" dengan prepared statements

24

$stmt->bind_param("s", $nama_mhs);

25
26

// jalankan query

27

$stmt->execute();

28
29

// hubungkan hasil query

30

$result = $stmt->get_result();

31
32

// tampilkan query

33

while ($row= $result->fetch_row()) {

34

echo "$row[0] $row[1] $row[2] $row[3] $row[4]";

35

echo "<br />";

36

37
38

// tutup statements

39

$stmt->close();

40
41

// tutup koneksi

42

$mysqli->close();

43

?>

http://www.duniailkom.com_________________________________________________________
____
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.
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:
1

<?php

// buat koneksi dengan MySQL, gunakan database: universitas

$link = mysqli_connect('localhost', 'root', '', 'universitas');

4
5

// buat prepared statements

$stmt = mysqli_prepare($link, "INSERT INTO mahasiswa_ilkom

VALUES (?, ?, ?, ?, ?)");

?>

http://www.duniailkom.com_________________________________________________________
____
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:
1

<?php

// hubungkan "data" dengan prepared statements

mysqli_stmt_bind_param($stmt, "ssisd",

$nim_mhs, $nama_mhs, $umur_mhs , $tempat_lahir_mhs, $ipk_mhs);

5
6

// siapkan "data" query

$nim_mhs="089023020";

$nama_mhs="Naira Alika";

$umur_mhs=20;

10

$tempat_lahir_mhs="Padang";

11

$ipk_mhs=3.9;

12

?>

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).

http://www.duniailkom.com_________________________________________________________
____

$umur_mhs = 20 (integer).

$tempat_lahir_mhs = Padang (string).

$ipk_mhs = 3.9 (decimal / float).

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:
1

INSERT INTO mahasiswa_ilkom VALUES

("089023020", "Naira Alika", 20, "Padang", 3.9)

Proses ketiga: execute


Setelah query dan data selesai diinput, kita tinggal menjalankan query dengan
fungsimysqli_stmt_execute():
1

<?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:
1

<?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 />";

?>

http://www.duniailkom.com_________________________________________________________
____
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:
1

<?php

// jalankan query untuk memeriksa hasil inputan

$result = mysqli_query($link, "SELECT * FROM mahasiswa_ilkom");

4
5

// tampilkan query

while ($row=mysqli_fetch_row($result)) {

echo "$row[0] $row[1] $row[2] $row[3] $row[4]";

echo "<br />";

10

?>

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

<?php

// tutup statements

mysqli_stmt_close($stmt);

4
5

// 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:
1

<?php

http://www.duniailkom.com_________________________________________________________
____
2

// buat koneksi dengan MySQL, gunakan database: universitas

$link = mysqli_connect('localhost', 'root', '', 'universitas');

4
5

// buat prepared statements

$stmt = mysqli_prepare($link, "INSERT INTO mahasiswa_ilkom

VALUES (?, ?, ?, ?, ?)");

8
9

// hubungkan "data" dengan prepared statements

10

mysqli_stmt_bind_param($stmt, "ssisd",

11

$nim_mhs, $nama_mhs, $umur_mhs , $tempat_lahir_mhs, $ipk_mhs);

12
13

// siapkan "data" query

14

$nim_mhs="089023020";

15

$nama_mhs="Naira Alika";

16

$umur_mhs=20;

17

$tempat_lahir_mhs="Padang";

18

$ipk_mhs=3.9;

19
20

// jalankan query

21

mysqli_stmt_execute($stmt);

22
23

// cek hasil query

24

if (!$stmt) {

25

die('Query Error : '.mysqli_errno($link).' - '.mysqli_error($link));

26

27

else {

28
29
30

echo "Penambahan ".mysqli_stmt_affected_rows($stmt). " data berhasil<br />";


}

http://www.duniailkom.com_________________________________________________________
____
31

// jalankan query untuk memeriksa hasil inputan

32

$result = mysqli_query($link, "SELECT * FROM mahasiswa_ilkom");

33
34

// tampilkan query

35

while ($row=mysqli_fetch_row($result)) {

36

echo "$row[0] $row[1] $row[2] $row[3] $row[4]";

37

echo "<br />";

38

39
40

// tutup statements

41

mysqli_stmt_close($stmt);

42
43

// tutup koneksi

44

mysqli_close($link);

45

?>

Apabila dijalankan, maka hasil yang didapat adalah sebagai berikut:


1

Penambahan 1 data berhasil

089023013 Alex Supriyanto 23 Surabaya 2.90

089023020 Naira Alika 20 Padang 3.90

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

Bisa terlihat bahwa data mahasiswa baru: Naira Alika telah masuk kedalam
tabelmahasiswa_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:
1

<?php

http://www.duniailkom.com_________________________________________________________
____
2

// buat koneksi dengan MySQL, gunakan database: universitas

$link = mysqli_connect('localhost', 'root', '', 'universitas');

4
5

// buat prepared statements

$stmt = mysqli_prepare($link, "INSERT INTO mahasiswa_ilkom

VALUES (?, ?, ?, ?, ?)");

8
9

// hubungkan "data" dengan prepared statements

10

mysqli_stmt_bind_param($stmt, "ssisd",

11

$nim_mhs, $nama_mhs, $umur_mhs , $tempat_lahir_mhs, $ipk_mhs);

12
13

// siapkan "data" query 1

14

$nim_mhs="089023023";

15

$nama_mhs="Alika Shanum";

16

$umur_mhs=21;

17

$tempat_lahir_mhs="Medan";

18

$ipk_mhs=3.8;

19
20

// jalankan query 1

21

mysqli_stmt_execute($stmt);

22
23

// cek hasil query 1

24

if (!$stmt) {

25

die('Query Error : '.mysqli_errno($link).' - '.mysqli_error($link));

26

27

else {

28
29
30

echo "Penambahan ".mysqli_stmt_affected_rows($stmt)." data berhasil<br />";


}

http://www.duniailkom.com_________________________________________________________
____
31

// siapkan "data" query 2

32

$nim_mhs="089023026";

33

$nama_mhs="Rina Melita";

34

$umur_mhs=22;

35

$tempat_lahir_mhs="Lampung";

36

$ipk_mhs=3.5;

37
38

// jalankan query 2

39

mysqli_stmt_execute($stmt);

40
41

// cek hasil query 2

42

if (!$stmt) {

43

die('Query Error : ' .mysqli_errno($link).' - '.mysqli_error($link));

44

45

else {

46
47

echo "Penambahan ".mysqli_stmt_affected_rows($stmt)." data berhasil<br />";


}

48
49

// siapkan "data" query 3

50

$nim_mhs="089023031";

51

$nama_mhs="Joni Halim";

52

$umur_mhs=21;

53

$tempat_lahir_mhs="Palembang";

54

$ipk_mhs=3.6;

55
56

// jalankan query 3

57

mysqli_stmt_execute($stmt);

58
59

// cek hasil query 3

http://www.duniailkom.com_________________________________________________________
____
60

if (!$stmt) {

61

die('Query Error : '.mysqli_errno($link).' - '.mysqli_error($link));

62

63

else {

64
65

echo "Penambahan ".mysqli_stmt_affected_rows($stmt)." data berhasil<br />";


}

66
67

// jalankan query untuk memeriksa hasil inputan

68

$result = mysqli_query($link, "SELECT * FROM mahasiswa_ilkom");

69
70

// tampilkan query

71

while ($row=mysqli_fetch_row($result)) {

72

echo "$row[0] $row[1] $row[2] $row[3] $row[4]";

73

echo "<br />";

74

75
76

// tutup statements

77

mysqli_stmt_close($stmt);

78
79

// tutup koneksi

80

mysqli_close($link);

81

?>

Kode diatas sedikit panjang, tetapi jika anda sudah memahami konsep prepared
statement, fungsi-fungsi 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:
1

Penambahan 1 data berhasil

Penambahan 1 data berhasil

http://www.duniailkom.com_________________________________________________________
____
3

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

10

099145055 Neil Situmorang 22 Medan 1.90

11

109223041 Rani Sabrina 21 Padang 3.70

12

109245021 Santi Syanum 21 Malang 3.20

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:
1

<?php

// buat koneksi dengan MySQL, gunakan database: universitas

$mysqli = new mysqli("localhost", "root", "","universitas");

4
5

// cek koneksi

if ($mysqli->connect_errno) {

die('Koneksi gagal: ' .$mysqli->connect_errno.

' - '.$mysqli->connect_error);

10
11

// buat prepared statements

12

$stmt = $mysqli->prepare("INSERT INTO mahasiswa_ilkom

13

VALUES (?, ?, ?, ?, ?)");

14
15

// hubungkan "data" dengan prepared statements

16

$stmt->bind_param("ssisd",

http://www.duniailkom.com_________________________________________________________
____
17

$nim_mhs, $nama_mhs, $umur_mhs , $tempat_lahir_mhs, $ipk_mhs);

18
19

// siapkan "data" query

20

$nim_mhs="089023020";

21

$nama_mhs="Naira Alika";

22

$umur_mhs=20;

23

$tempat_lahir_mhs="Padang";

24

$ipk_mhs=3.9;

25
26

// jalankan query

27

$stmt->execute();

28
29

// cek query

30

if (!$stmt) {

31

die('Query Error : '.$mysqli->errno.

32

' - '.$mysqli->error);

33

34

else {

35
36

echo "Penambahan ".$stmt->affected_rows. " data berhasil<br />";


}

37
38

// jalankan query untuk memeriksa hasil inputan

39

$result = $mysqli->query("SELECT * FROM mahasiswa_ilkom");

40
41

// tampilkan query

42

while ($row= $result->fetch_row()) {

43

echo "$row[0] $row[1] $row[2] $row[3] $row[4]";

44

echo "<br />";

45

http://www.duniailkom.com_________________________________________________________
____
46
47

// tutup statements

48

$stmt->close();

49
50

// tutup koneksi

51

$mysqli->close();

52

?>

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

http://www.duniailkom.com_________________________________________________________
____
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

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.

http://www.duniailkom.com_________________________________________________________
____
Untuk melihat driver database apa saja yang telah aktif dan bisa langsung
digunakan, bisa menggunakan fungsi (lebih tepatnya: static
method) PDO::getAvailableDrivers():
1
2
3

<?php
print_r(PDO::getAvailableDrivers());
?>

Ketika saya menjalankan perintah tersebut pada PHP 5.6 bawaan XAMPP, berikut
adalah hasil yang didapat:
1

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:

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

http://www.duniailkom.com_________________________________________________________
____
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
methodPDO::getAvailableDrivers(), dan berikut adalah hasil yang didapat:
1

Array ( [0] => mysql [1] => pgsql [2] => sqlite )

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

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

http://www.duniailkom.com_________________________________________________________
____
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:
1

$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:
1
2
3

<?php
$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:
1

<?php

http://www.duniailkom.com_________________________________________________________
____
2

$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 blokTRYCATCH, 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.

http://www.duniailkom.com_________________________________________________________
____
Dengan menggunakan penanganan kesalahan (exceptions), berikut adalah
modifikasi kode PHP untuk koneksi PDO dengan MySQL:
1

<?php

try {

// buat koneksi dengan database

$dbh = new PDO('mysql:host=localhost;dbname=universitas', "root", "");

5
6

// set error mode

$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

8
9

// hapus koneksi

10

$dbh = null;

11

12

catch (PDOException $e) {

13

// tampilkan pesan kesalahan jika koneksi gagal

14

print "Koneksi atau query bermasalah: " . $e->getMessage() . "<br/>";

15

die();

16

17

?>

Sebagai contoh, jika saya mengganti nama user menjadi user_tetangga yang
memang tidak ada di dalam database, berikut tampilan error yang terjadi:
1

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

http://www.duniailkom.com_________________________________________________________
____
Walaupun terkesan rumit, menjalankan query dan menampilkan hasilnya
menggunakan PDO PHPtidaklah 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:
1

<?php

try {

// buat koneksi dengan database

$dbh = new PDO('mysql:host=localhost;dbname=universitas', "root", "");

5
6

// set error mode

$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

8
9

// jalankan query

10

$result = $dbh->query('SELECT * FROM mahasiswa_ilkom');

11
12

// tampilkan data

13

while($row = $result->fetch()) {

14

echo "$row[0] $row[1] $row[2] $row[3] $row[4]";

15

echo "<br />";

16

17
18

// hapus koneksi

19

$dbh = null;

20

21

catch (PDOException $e) {

22

// tampilkan pesan kesalahan jika koneksi gagal

23

print "Koneksi atau query bermasalah: " . $e->getMessage() . "<br/>";

http://www.duniailkom.com_________________________________________________________
____
24

die();

25

26

?>

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 tabelmahasiswa_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:
1

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

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:
1

<?php

http://www.duniailkom.com_________________________________________________________
____
2

// kode program untuk koneksi dan menjalankan query

// ...

// ...

5
6

// tampilkan data

while($row = $result->fetch(PDO::FETCH_ASSOC)) {

echo $row['nim']." ".$row['nama']." ".$row['umur']." ";

echo $row['tempat_lahir']." ".$row['IPK'];

10

echo "<br />";

11

12

?>

Dan jika ingin menampilkan dengan pengaksesan objek, bisa


menggunakan PDO::FETCH_OBJ:
1

<?php

// kode program untuk koneksi dan menjalankan query

// ...

// ...

5
6

// tampilkan data

while($row = $result->fetch(PDO::FETCH_OBJ)) {

echo $row->nim." ".$row->nama." ".$row->umur." ";

echo $row->tempat_lahir." ".$row->IPK;

10

echo "<br />";

11

12

?>

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.

http://www.duniailkom.com_________________________________________________________
____

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:
1

<?php

try {

// buat koneksi dengan database

$dbh = new PDO('mysql:host=localhost;dbname=universitas', "root", "");

5
6

// set error mode

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

8
9

$query= 'INSERT INTO mahasiswa_ilkom VALUES

http://www.duniailkom.com_________________________________________________________
____
10

("099023022", "Ayla Ramadhani", 20, "Aceh", 3.1)';

11
12

// jalankan query

13

$result = $dbh->query($query);

14
15

// tampilkan hasil proses query

16

echo $result->rowCount()." data berhasil ditambahkan";

17
18

// hapus koneksi

19

$dbh = null;

20
21

} catch (PDOException $e) {

22

// tampilkan pesan kesalahan jika koneksi gagal

23

print "koneksi/query bermasalah: " . $e->getMessage() . "<br/>";

24

die();

25

26

?>

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

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().

http://www.duniailkom.com_________________________________________________________
____
Mari kita lihat bagaimana cara menambahkan 1 data ke dalam
tabel mahasiswa_ilkommenggunakan method PDO->exec():
1

<?php

try {

// buat koneksi dengan database

$dbh = new PDO('mysql:host=localhost;dbname=universitas', "root", "");

5
6

// set error mode

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

8
9

$query= 'INSERT INTO mahasiswa_ilkom VALUES

10

("109013027", "Siska Rosiana", 19, "Bengkulu", 2.9)';

11
12

// jalankan query

13

$result = $dbh->exec($query);

14
15

// tampilkan hasil proses query

16

echo $result." data berhasil ditambahkan";

17
18

// hapus koneksi

19

$dbh = null;

20
21

} catch (PDOException $e) {

22

// tampilkan pesan kesalahan jika koneksi gagal

23

print "koneksi/query bermasalah: " . $e->getMessage() . "<br/>";

24

die();

25

26

?>

Dari kode diatas, method $dbh->exec($query) akan menjalankan query yang


disimpan dari variabel $query. Untuk menampilkan jumlah data yang ditambahkan,

http://www.duniailkom.com_________________________________________________________
____
kita bisa langsung menggunakan variabel $result hasil method $dbh>exec($query).
Jika anda menjalankan kode diatas, maka hasil yang didapat adalah sebagai berikut:
1

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:
1

<?php

try {

// buat koneksi dengan database

$dbh = new PDO('mysql:host=localhost;dbname=universitas', "root", "");

5
6

// set error mode

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

8
9

// siapkan query (prepare)

10

$stmt = $dbh->prepare('INSERT INTO mahasiswa_ilkom

11

VALUES (?, ?, ?, ?, ?)');

12

http://www.duniailkom.com_________________________________________________________
____
13

// hubungkan data dengan variabel (bind)

14

$stmt->bindParam(1, $nim_mhs);

15

$stmt->bindParam(2, $nama_mhs);

16

$stmt->bindParam(3, $umur_mhs);

17

$stmt->bindParam(4, $tempat_lahir_mhs);

18

$stmt->bindParam(5, $ipk_mhs);

19
20

// siapkan "data" query

21

$nim_mhs="109023031";

22

$nama_mhs="Jerry Kurniawan";

23

$umur_mhs=23;

24

$tempat_lahir_mhs="Malang";

25

$ipk_mhs=3.1;

26
27

// jalankan query (execute)

28

$stmt->execute();

29
30

// tampilkan hasil proses query

31

echo $stmt->rowCount()." data berhasil ditambahkan";

32
33

// hapus koneksi

34

$dbh = null;

35
36

} catch (PDOException $e) {

37

// tampilkan pesan kesalahan jika koneksi gagal

38

print "koneksi/query bermasalah: " . $e->getMessage() . "<br/>";

39

die();

40

41

?>

http://www.duniailkom.com_________________________________________________________
____
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

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:
1

<?php

try {

// buat koneksi dengan database

$dbh = new PDO('mysql:host=localhost;dbname=universitas', "root", "");

5
6

// set error mode

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

8
9

// siapkan query (prepare)

http://www.duniailkom.com_________________________________________________________
____
10

$stmt = $dbh->prepare('INSERT INTO mahasiswa_ilkom VALUES

11

(:nim_mhs, :nama_mhs, :umur_mhs, :tempat_lahir_mhs, :ipk_mhs)');

12
13

// hubungkan data dengan variabel (bind)

14

$stmt->bindParam(':nim_mhs', $nim_mhs);

15

$stmt->bindParam(':nama_mhs', $nama_mhs);

16

$stmt->bindParam(':umur_mhs', $umur_mhs);

17

$stmt->bindParam(':tempat_lahir_mhs', $tempat_lahir_mhs);

18

$stmt->bindParam(':ipk_mhs', $ipk_mhs);

19
20

// siapkan "data" query

21

$nim_mhs="109023031";

22

$nama_mhs="Jerry Kurniawan";

23

$umur_mhs=23;

24

$tempat_lahir_mhs="Malang";

25

$ipk_mhs=3.1;

26
27

// jalankan query (execute)

28

$stmt->execute();

29
30

// tampilkan hasil proses query

31

echo $stmt->rowCount()." data berhasil ditambahkan";

32
33

// hapus koneksi

34

$dbh = null;

35
36

} catch (PDOException $e) {

37

// tampilkan pesan kesalahan jika koneksi gagal

38

print "koneksi/query bermasalah: " . $e->getMessage() . "<br/>";

http://www.duniailkom.com_________________________________________________________
____
39

die();

40

41

?>

Perbedaan dari kode program sebelumnya adalah pada cara penulisan query dan
argumen methodbindParam(). 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:
1

<?php

try {

// buat koneksi dengan database

$dbh = new PDO('mysql:host=localhost;dbname=universitas', "root", "");

5
6

// set error mode

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

8
9

// siapkan query (prepare)

10

$stmt = $dbh->prepare('INSERT INTO mahasiswa_ilkom VALUES

11

(:nim_mhs, :nama_mhs, :umur_mhs, :tempat_lahir_mhs, :ipk_mhs)');

12
13

// siapkan "data" query

14

$nim_mhs="109023031";

15

$nama_mhs="Jerry Kurniawan";

16

$umur_mhs=23;

17

$tempat_lahir_mhs="Malang";

18

$ipk_mhs=3.1;

19
20

// jalankan query (execute)

21

$stmt->execute(array(':nim_mhs' => $nim_mhs, ':nama_mhs' => $nama_mhs,

http://www.duniailkom.com_________________________________________________________
____
22

':umur_mhs' => $umur_mhs, ':tempat_lahir_mhs' => $tempat_lahir_mhs,

23

':ipk_mhs' => $ipk_mhs ));

24
25

// tampilkan hasil proses query

26

echo $stmt->rowCount()." data berhasil ditambahkan";

27
28

// hapus koneksi

29

$dbh = null;

30
31

} catch (PDOException $e) {

32

// tampilkan pesan kesalahan jika koneksi gagal

33

print "koneksi/query bermasalah: " . $e->getMessage() . "<br/>";

34

die();

35

36

?>

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

http://www.duniailkom.com_________________________________________________________
____
Dalam sesi tutorial PHP lanjutan kali ini, kita akan membahas tentang Cara
Membuat dan Memproses Form HTML dengan PHP.
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:
1

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

http://www.duniailkom.com_________________________________________________________
____
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
sepertiaction=file_php/proses.php, ataupun alamat absolut
sepertiaction=http://www.duniailkom.com/proses.php.
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 masingmasing 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

http://www.duniailkom.com_________________________________________________________
____
(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:
1

<!DOCTYPE html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>Belajar Form PHP</title>

</head>

6
7

<body>

<h2>Tutorial Belajar Form HTML - PHP </h2>

<form action="proses.php" method="get">

10

Nama: <input type="text" name="nama" />

11

<br />

12

E-Mail: <input type="text" name="email" />

13

<br />

14

<input type="submit" value="Proses Data" >

15

</form>

16

</body>

17

</html>

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

http://www.duniailkom.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
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 karakterkarakter 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:
1

<?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:

http://www.duniailkom.com_________________________________________________________
____

Tampilan diatas adalah hasil dari 3 baris kode program PHP yang kita buat di dalam
halamanproses.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:
<form action="proses.php" method="post">
Lalu ubah juga file proses.php menjadi:
1

<?php

echo $_POST['nama'];

echo "<br />";

echo $_POST['email'];

?>

Dan PHP akan menampilkan hasil yang sama, namun kali ini form dikirim
menggunakanmethod=post.

http://www.duniailkom.com_________________________________________________________
____
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

http://www.duniailkom.com_________________________________________________________
____
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
Untuk mengujinya, silahkan copypaste text tersebut ke address bar web browser,
dan situsduniailkom 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 variabel$_GET membuat kita bisa menampilkan
nilai dalam proses.php tanpa menggunakan form sama sekali.
Jika isi dari file proses.php adalah:
1

<?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

Da
n 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).

http://www.duniailkom.com_________________________________________________________
____
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.

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.

http://www.duniailkom.com_________________________________________________________
____
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:
1

<!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" />

10

<br />

http://www.duniailkom.com_________________________________________________________
____
11

E-Mail: <input type="text" name="email" />

12

<br />

13

<input type="submit" value="Proses Data" >

14

</form>

15

</body>

16

</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:
1

<?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.

http://www.duniailkom.com_________________________________________________________
____

Tutorial Form PHP Part 4: Pengertian Register Global dan Register Long Array
(deprecated)
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.

http://www.duniailkom.com_________________________________________________________
____
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:
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:

http://www.duniailkom.com_________________________________________________________
____
1

<!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" />

10

<br />

11

E-Mail: <input type="text" name="email" />

12

<br />

13

<input type="submit" value="Proses Data" >

14

</form>

15

</body>

16

</html>

Dalam
percobaan Register Global ini, kita tidak akan melakukan perubahan apa-apa
pada halamanform.html, namun pada file proses.php, ubahlah menjadi:
1

<?php

http://www.duniailkom.com_________________________________________________________
____
2

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:
1

<?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);

7
8

//jika user valid, ubah variabel $hak_akses menjadi true

if ($match)

10

11
12

$hak_akses=true;
}

13
14

//jika hak akses true, masuk ke proses utama

15

if ($hak_akses==true)

16

17

// kode program jika user valid

http://www.duniailkom.com_________________________________________________________
____
18

19

?>

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:
1

<?php

http://www.duniailkom.com_________________________________________________________
____
2
3
4
5

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

http://www.duniailkom.com_________________________________________________________
____
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:
1

<!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" />

10

<br />

11

E-Mail: <input type="text" name="email" />

12

<br />

13

<input type="submit" value="Proses Data" >

14

</form>

15

</body>

16

</html>

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.
Sebagai langkah antisipasi, saya akan membuat proses validasi untuk menangani
variabel $_GETyang belum di-set, berikut adalah modifikasi file proses.php:
1

<?php

if (isset($_GET['nama']))

http://www.duniailkom.com_________________________________________________________
____
4
5

echo $_GET['nama'];
}

6
7

echo "<br />";

8
9

if (isset($_GET['email']))

10

11

echo $_GET['email'];

12

13

?>

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:
1

<?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";

10

11

?>

http://www.duniailkom.com_________________________________________________________
____

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().
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:
1

<?php

if (isset($_GET['nama']) AND isset($_GET['email']))

$nama=$_GET['nama'];

$email=$_GET['email'];

else

http://www.duniailkom.com_________________________________________________________
____
8

9
10

die("Maaf, anda harus mengakses halaman ini dari form.html");


}

11
12

if (!empty($nama))

13

14

echo "Nama: $nama <br /> Email: $email";

15

16

else

17

18

die("Maaf, anda harus mengisi nama");

19

20

?>

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.

http://www.duniailkom.com_________________________________________________________
____
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(), danis_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:
1

<?php

if (isset($_GET['nama']) AND isset($_GET['email']))

$nama=$_GET['nama'];

$email=$_GET['email'];

else

9
10

die("Maaf, anda harus mengakses halaman ini dari form.html");


}

11
12

if(empty($nama))

13

14
15

die("Maaf, anda harus mengisi nama");


}

http://www.duniailkom.com_________________________________________________________
____
16

else

17

18

if (is_numeric($nama))

19

20

die("Maaf, nama harus berupa huruf");

21

22

else

23

24

echo "Nama: $nama <br /> Email: $email";

25

26

27

?>

Dalam kode diatas, saya menambahkan 1 lagi logika IF untuk menyeleksi apakah
variabel $namaberisi 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 dilakukan. Misalnya, untuk menfilter
variabel $nama diatas, akan lebih cocok menggunakanregular expression daripada
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 Cross-site Scripting dan
HTML injection

http://www.duniailkom.com_________________________________________________________
____
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
injectionmerupakan 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:

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

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 nama-nama 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 entitysehingga 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.

http://www.duniailkom.com_________________________________________________________
____
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:
1

<?php

if (isset($_GET['nama']) AND isset($_GET['email']))

$nama=$_GET['nama'];

$email=$_GET['email'];

$nama=htmlspecialchars($nama);

$email=strip_tags($email);

else

10

11
12

die("Maaf, anda harus mengakses halaman ini dari form.html");


}

13
14

if(empty($nama))

15

16

die("Maaf, anda harus mengisi nama");

17

18

else

19

20

if (is_numeric($nama))

21

22

die("Maaf, nama harus berupa huruf");

23

24

else

25

26

echo "Nama: $nama <br /> Email: $email";

http://www.duniailkom.com_________________________________________________________
____
27

28

29

?>

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

http://www.duniailkom.com_________________________________________________________
____
inputan tersebut akan difilter agar lebih aman.

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

http://www.duniailkom.com_________________________________________________________
____
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:
&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():
1

<?php

$string = "Hll Dunalkom";

echo htmlentities($string);

?>

Dan berikut adalah hasilnya:

http://www.duniailkom.com_________________________________________________________
____

Se
perti 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.

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

http://www.duniailkom.com_________________________________________________________
____
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
variabel$_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 berdasarkan kondisi yang terjadi. Namun pesan

http://www.duniailkom.com_________________________________________________________
____
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:
1

<?php

if (isset($_GET['nama']) AND isset($_GET['email']))

$nama=$_GET['nama'];

$email=$_GET['email'];

$nama=htmlspecialchars($nama);

$email=strip_tags($email);

else

10

11
12

header("Location:form.php?error=variabel_belum_diset");
}

13
14

if(empty($nama))

15

16

header("Location:form.php?error=nama_kosong");

17

18

else

19

20

if (is_numeric($nama))

21

http://www.duniailkom.com_________________________________________________________
____
22

header("Location:form.php?error=nama_harus_huruf");

23

24

else

25

26

echo "Nama: $nama <br /> Email: $email";

27

28

29

?>

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:
1

<?php

//ambil nilai variabel error

if (isset($_GET['error']))

$error=$_GET['error'];

else

9
10

$error="";
}

11
12

//siapkan pesan kesalahan

13

$pesan="";

14

if ($error=="variabel_belum_diset")

15

http://www.duniailkom.com_________________________________________________________
____
16

$pesan="<h3>Maaf, anda harus mengakses halaman ini dari form.php</h3>";

17

18

if ($error=="nama_kosong")

19

20

$pesan="<h3>Maaf, anda harus mengisi nama</h3>";

21

22

if ($error=="nama_harus_huruf")

23

24

$pesan="<h3>Maaf, nama harus berupa huruf</h3>";

25

26

?>

27
28

<!DOCTYPE html>

29

<head>

30

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

31

<title>Belajar Form PHP</title>

32

</head>

33

<body>

34

<h2>Tutorial Belajar Form HTML - PHP </h2>

35

<?php

36

echo $pesan;

37

?>

38

<form action="proses.php" method="get">

39

Nama: <input type="text" name="nama" />

40

<br />

41

E-Mail: <input type="text" name="email" />

42

<br />

43

<input type="submit" value="Proses Data" >

44

</form>

http://www.duniailkom.com_________________________________________________________
____
45

</body>

46

</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 halamanform.php.

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

http://www.duniailkom.com_________________________________________________________
____
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 denganOOP PHP.

Apa itu Pemrograman Berbasis Objek?


Object Oriented Programming atau dalam bahasa indonesia
diartikan Pemrograman Berbasis Objek, adalah salah satu cara membuat
program (programming paradigm) dengan memecah alur program menjadi modulmodul 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.

http://www.duniailkom.com_________________________________________________________
____
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

http://www.duniailkom.com_________________________________________________________
____
Jika anda telah biasa membuat program secara prosedural, yakni menulis
program-program dari baris pertama sampai dengan baris terakhir secara
berurutan, konsep pemrograman berbasis 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

http://www.duniailkom.com_________________________________________________________
____
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.

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:
1

<?php

http://www.duniailkom.com_________________________________________________________
____
2

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:
1

<?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


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.

http://www.duniailkom.com_________________________________________________________
____
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:
1

<?php

class laptop {

function hidupkan_laptop() {

//... isi dari method hidupkan_laptop

6
7

function matikan_laptop() {

//... isi dari method matikan_laptop

10
11

... //isi dari class laptop

12

13

?>

Dari contoh
diatas, function hidupkan_laptop() dan function matikan_laptop() adalah metho
d 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:
1

<?php

http://www.duniailkom.com_________________________________________________________
____
2
3
4
5
6
7
8

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.
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:
1

<?php

// buat class laptop

class laptop {

4
5

// buat property untuk class laptop

var $pemilik;

var $merk;

http://www.duniailkom.com_________________________________________________________
____
8

var $ukuran_layar;

9
10

// buat method untuk class laptop

11

function hidupkan_laptop() {

12

return "Hidupkan Laptop";

13

14

function matikan_laptop() {

15

return "Matikan Laptop";

16
17

}
}

18
19

// buat objek dari class laptop (instansiasi)

20

$laptop_anto = new laptop();

21

?>

Dalam kode diatas, kita telah membuat sebuah class dengan nama laptop,
lengkap dengan propertydan 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.

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:

http://www.duniailkom.com_________________________________________________________
____
1

<?php

// buat class laptop

class laptop {

4
5

// buat property untuk class laptop

var $pemilik;

var $merk;

var $ukuran_layar;

9
10

// buat method untuk class laptop

11

function hidupkan_laptop() {

12

return "Hidupkan Laptop";

13

14

function matikan_laptop() {

15

return "Matikan Laptop";

16
17

}
}

18
19

// buat objek dari class laptop (instansiasi)

20

$laptop_anto = new laptop();

21
22

// set property

23

$laptop_anto->pemilik="Anto";

24

$laptop_anto->merk="Asus";

25

$laptop_anto->ukuran_layar="15 inchi";

26
27

// tampilkan property

28

echo $laptop_anto->pemilik;

29

echo "<br />";

http://www.duniailkom.com_________________________________________________________
____
30

echo $laptop_anto->merk;

31

echo "<br />";

32

echo $laptop_anto->ukuran_layar;

33

echo "<br />";

34
35

// tampilkan method

36

echo $laptop_anto->hidupkan_laptop();

37

echo "<br />";

38

echo $laptop_anto->matikan_laptop();

39

?>

Jika anda menjalankan kode program di atas, berikut adalah hasil yang didapat:
1

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.

var $pemilik;

var $merk;

var $ukuran_layar;

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

http://www.duniailkom.com_________________________________________________________
____

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.

http://www.duniailkom.com_________________________________________________________
____
1

echo $laptop_anto->pemilik;

echo "<br />";

echo $laptop_anto->merk;

echo "<br />";

echo $laptop_anto->ukuran_layar;

echo "<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 $.
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:
1

<?php

// buat class laptop

class laptop {

4
5

// buat property untuk class laptop

var $pemilik;

http://www.duniailkom.com_________________________________________________________
____
7
8

// buat method untuk class laptop

function hidupkan_laptop() {

10

return "Hidupkan Laptop";

11
12

}
}

13
14

// buat objek dari class laptop (instansiasi)

15

$laptop_anto = new laptop();

16

$laptop_andi = new laptop();

17

$laptop_dina = new laptop();

18
19

// set property

20

$laptop_anto->pemilik="Anto";

21

$laptop_andi->pemilik="Andi";

22

$laptop_dina->pemilik="Dina";

23
24

// tampilkan property

25

echo $laptop_anto->pemilik; // Anto

26

echo "<br />";

27

echo $laptop_andi->pemilik; // Andi

28

echo "<br />";

29

echo $laptop_dina->pemilik; // Dina

30

echo "<br />";

31

?>

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.

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), yakniEnkapsulasi (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

http://www.duniailkom.com_________________________________________________________
____
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:
1

<?php

2
3

// buat class laptop

class laptop {

5
6

// buat public property

public $pemilik;

8
9

// buat public method

10

public function hidupkan_laptop() {

11

return "Hidupkan Laptop";

12
13

}
}

14
15

// buat objek dari class laptop (instansiasi)

16

$laptop_anto = new laptop();

17
18

// set property

19

$laptop_anto->pemilik="Anto";

20
21

// tampilkan property

22

echo $laptop_anto->pemilik; // Anto

23

http://www.duniailkom.com_________________________________________________________
____
24

// tampilkan method

25

echo $laptop_anto->hidupkan_laptop(); // "Hidupkan Laptop"

26

?>

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 methodtersebut 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:
1

<?php

2
3

// buat class laptop

class laptop {

5
6

// buat protected property

protected $pemilik;

http://www.duniailkom.com_________________________________________________________
____
9

// buat protected method

10

protected function hidupkan_laptop() {

11

return "Hidupkan Laptop";

12
13

}
}

14
15

// buat objek dari class laptop (instansiasi)

16

$laptop_anto = new laptop();

17
18

// set protected property akan menghasilkan error

19

$laptop_anto->pemilik="Anto";

20

// Fatal error: Cannot access protected property laptop::$pemilik

21
22

// tampilkan protected property akan menghasilkan error

23

echo $laptop_anto->pemilik;

24

// Fatal error: Cannot access protected property laptop::$pemilik

25
26

// jalankan protected method akan menghasilkan error

27

echo $laptop_anto->hidupkan_laptop();

28

// Fatal error: Call to protected method laptop::hidupkan_laptop()

29

// from context

30

?>

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:
1

<?php

2
3

// buat class laptop

class laptop {

http://www.duniailkom.com_________________________________________________________
____
5
6

// buat protected property

protected $pemilik="Anto";

8
9

public function akses_pemilik() {

10

return $this->pemilik;

11

12

protected function hidupkan_laptop() {

13

return "Hidupkan Laptop";

14

15

public function paksa_hidup() {

16

return $this->hidupkan_laptop();

17
18

}
}

19
20

// buat objek dari class laptop (instansiasi)

21

$laptop_anto = new laptop();

22
23

// jalankan method akses_pemilik()

24

echo $laptop_anto->akses_pemilik(); // "Anto"

25
26

// jalankan method paksa_hidup()

27

echo $laptop_anto->paksa_hidup(); // "Hidupkan Laptop"

28

?>

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().
Begitu juga dengan method hidupkan_laptop() yang tidak bisa diakses secara
langsung. Saya menambahkan method paksa_hidup() yang secara internal akan
mengakses methodhidupkan_laptop().

http://www.duniailkom.com_________________________________________________________
____

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):
1
2
3
4

<?php

// buat class komputer


class komputer{

5
6

// property dengan hak akses protected

7
8

protected $jenis_processor = "Intel Core i7-4790 3.6Ghz";


}

9
10

// buat class laptop

11

class laptop extends komputer{

12

public function tampilkan_processor() {


return $this->jenis_processor;

13
}

14
15

16
17
18

// buat objek dari class laptop (instansiasi)


$laptop_baru = new laptop();

19
20
21
22

// jalankan method
echo $laptop_baru->tampilkan_processor(); // "Intel Core i7-4790 3.6Ghz"
?>

http://www.duniailkom.com_________________________________________________________
____

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 di-set 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:
1

<?php

2
3

// buat class komputer

class komputer {

5
// property dengan hak akses protected

private $jenis_processor = "Intel Core i7-4790 3.6Ghz";

7
8

public function tampilkan_processor() {

return $this->jenis_processor;

10
11
12
13
14

}
}

// buat class laptop


class laptop extends komputer{

15
16
17

public function tampilkan_processor() {


return $this->jenis_processor;

http://www.duniailkom.com_________________________________________________________
____
18
}

19
20

21
22
23
24
25
26

// 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"

27
28
29

// jalankan method dari class laptop (error)


echo $laptop_baru->tampilkan_processor();

30

// Notice: Undefined property: laptop::$jenis_processor

31

?>

32

Dalam kode diatas, saya membuat 2 buah class, yakni class komputer, dan class
laptop. Class laptopmerupakan turunan dari class komputer. Di dalam class
komputer terdapat property $jenis_processordengan akses level private. Di
dalam class komputer dan class laptop, saya
membuat methodtampilkan_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.

http://www.duniailkom.com_________________________________________________________
____

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.

Untuk lebih memudahkan pemahaman, kita akan bahas menggunakan contoh.


Berikut adalah class laptop dengan beberapa property dan method.
1

<?php

2
3

// buat class laptop

class laptop {

5
6

// buat property untuk class laptop

public $pemilik;

http://www.duniailkom.com_________________________________________________________
____
8

public $merk;

public $ukuran_layar;

10
11

// buat method untuk class laptop

12

public function hidupkan_laptop() {

13

return "Hidupkan Laptop";

14

15
16

public function matikan_laptop() {

17

return "Matikan Laptop";

18
19

}
}

20
21

// buat objek dari class laptop (instansiasi)

22

$laptop_anto = new laptop();

23

$laptop_andi = new laptop();

24

?>

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 nilaistring. 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:
1

$laptop_anto->pemilik = "Anto";

$laptop_andi->pemilik = "Andi";

http://www.duniailkom.com_________________________________________________________
____
Dengan perintah diatas, property $pemilik pada masing-masing objek telah berisi
nilai. Untuk menampilkan nilai dari objek tersebut, kita tinggal mengaksesnya
dengan kode berikut:
1

echo $laptop_anto->pemilik; // Anto

Sampai disini, kita telah memahami cara mengakses property objek dari objek itu
sendiri, yakni dengan menggunakan format:
1

$nama_objek->nama_property

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

<?php

// buat class laptop

class laptop {

4
5

// buat property untuk class laptop

public $pemilik="Andi";

7
8

// buat method untuk class laptop

public function hidupkan_laptop() {

10

return "Hidupkan Laptop";

11
12

}
}

13
14

// buat objek dari class laptop (instansiasi)

15

$laptop_baru = new laptop();

16

$laptop_lama = new laptop();

17

?>

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.
1

echo $laptop_baru->pemilik; // Andi

http://www.duniailkom.com_________________________________________________________
____
2

echo $laptop_lama->pemilik; // Andi

Lebih jauh lagi, pemanggilan method juga akan menghasilkan nilai yang sama:
1

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:
1

public function hidupkan_laptop() {

2
3

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 $pemilikdengan nilai Andi? kita bisa menggunakan property ini
dan menambahkannya ke dalam methodhidupkan_laptop.
Untuk mencoba ide tersebut, silahkan ubah contoh class laptop sebelumnya
menjadi berikut:
1

<?php

// buat class laptop

class laptop {

4
5

// buat property untuk class laptop

public $pemilik="Andi";

public $merk;

8
9

// buat method untuk class laptop

10

public function hidupkan_laptop() {

11

return "Hidupkan Laptop $pemilik";

12
13

}
}

http://www.duniailkom.com_________________________________________________________
____
14
15

// buat objek dari class laptop (instansiasi)

16

$laptop_baru = new laptop();

17
18

echo $laptop_baru->hidupkan_laptop(); // "Hidupkan Laptop"

19

?>

Jika anda menjalankan kode diatas, hasil yang didapat adalah:


1

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 methodhidupkan_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 $pemilikdan method hidupkan_l
aptop() (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:
1

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:
1

"Hidupkan Laptop $this->pemilik";

Variabel $this merujuk kepada objek yang sedang menginstansiasi class.


Jika di dalam class laptop kita membuat:

http://www.duniailkom.com_________________________________________________________
____
1

"Hidupkan Laptop $this->pemilik";

Maka di dalam objek $laptop_baru, akan menjadi:


1

"Hidupkan Laptop $laptop_baru->pemilik";

Jika kita memiliki objek lain misalkan $laptop_lama, maka perintah tersebut akan
dijalankan menjadi:
1

"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:
1

<?php

// buat class laptop

class laptop {

4
5

// buat property untuk class laptop

public $pemilik="Andi";

7
8

// buat method untuk class laptop

public function hidupkan_laptop() {

10

return "Hidupkan Laptop $this->pemilik";

11
12

}
}

13
14

// buat objek dari class laptop (instansiasi)

15

$laptop_baru = new laptop();

16
17

echo $laptop_baru->hidupkan_laptop(); // "Hidupkan Laptop Andi";

18
19

//ubah isi property $pemilik pada objek $laptop_baru

20

$laptop_baru->pemilik="Arie";

21

http://www.duniailkom.com_________________________________________________________
____
22

echo $laptop_baru->hidupkan_laptop(); // "Hidupkan Laptop Arie";

23
24

// buat objek baru dari class laptop dan panggil hidupkan_laptop()

25

$laptop_lama = new laptop();

26

echo $laptop_lama->hidupkan_laptop();

27

?>

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 Pseudo-Variable $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 methodlain menggunakan variabel $this, silahkan anda pahami alur
kerja dari class dan objek dibawah ini:
1

<?php

// buat class laptop

class laptop {

4
5

// buat property untuk class laptop

http://www.duniailkom.com_________________________________________________________
____
6

public $pemilik;

public $merk;

8
9

// buat method untuk class laptop

10

public function hidupkan_laptop() {

11

return "Hidupkan Laptop $this->merk punya $this->pemilik";

12

13
14

public function matikan_laptop() {

15

return "Matikan Laptop $this->merk punya $this->pemilik";

16

17
18

public function restart_laptop() {

19

$matikan=$this->matikan_laptop();

20

$hidupkan= $this->hidupkan_laptop();

21

$restart=$matikan."<br />".$hidupkan;

22

return $restart;

23
24

}
}

25
26

// buat objek dari class laptop (instansiasi)

27

$laptop_anto = new laptop();

28
29

// isi property objek

30

$laptop_anto->pemilik="Anto";

31

$laptop_anto->merk="Asus";

32
33
34

echo $laptop_anto->hidupkan_laptop();

http://www.duniailkom.com_________________________________________________________
____
35

// hasil: "Hidupkan Laptop Asus punya Anto";

36
37

echo "<br />";

38
39

echo $laptop_anto->matikan_laptop();

40

// hasil: "Matikan Laptop Asus punya Anto";

41
42

echo "<br />";

43
44

echo $laptop_anto->restart_laptop();

45

// hasil:

46

// "Matikan Laptop Asus punya Anto";

47

// "Hidupkan Laptop Asus punya Anto";

48

?>

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:
1

"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:
1

"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
methodmatikan_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.
1

public function restart_laptop() {

$matikan=$this->matikan_laptop();

$hidupkan= $this->hidupkan_laptop();

http://www.duniailkom.com_________________________________________________________
____
4

$restart=$matikan."<br />".$hidupkan;

return $restart;

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:
1

hak_akses nama_method ($argumen1, argumen2, dst...)

3
4

//... isi dari method


}

Dengan menggunakan contoh method hidupkan_laptop(), kita bisa membuatnya


menjadi:
1

public hidupkan_laptop($pemilik, $merk)

3
4

//... isi dari method


}

http://www.duniailkom.com_________________________________________________________
____
Sehingga apabila metod itu dipanggil dari objek, kita tinggal mengisi argumen
dengan nilai yang diinginkan, seperti contoh berikut:
1

$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:
1

<?php

// buat class laptop

class laptop {

// buat method untuk class laptop

public function hidupkan_laptop($pemilik,$merk) {

return "Hidupkan Laptop $merk punya $pemilik";

7
8

}
}

9
10

// buat objek dari class laptop (instansiasi)

11

$laptop_andi= new laptop();

12
13

echo $laptop_andi->hidupkan_laptop("Andi", "Lenovo");

14

// hasil: "Hidupkan Laptop Lenovo punya Andi";

15

?>

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:
1

<?php

// buat class laptop

class laptop {

// buat property untuk class laptop

http://www.duniailkom.com_________________________________________________________
____
5

private $pemilik="Anto";

private $merk="Acer";

7
8

// buat method untuk class laptop

public function hidupkan_laptop($pemilik,$merk) {

10

return "Hidupkan Laptop $merk punya $pemilik";

11

12
13

public function hidupkan_laptop_anto() {

14

return "Hidupkan Laptop $this->merk punya $this->pemilik";

15
16

}
}

17
18

// buat objek dari class laptop (instansiasi)

19

$laptop_andi= new laptop();

20
21

echo $laptop_andi->hidupkan_laptop("Andi", "Lenovo");

22

// hasil: "Hidupkan Laptop Lenovo punya Andi";

23
24

echo $laptop_andi->hidupkan_laptop_anto();

25

// hasil: "Hidupkan Laptop Acer punya Anto";

26

?>

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:
1

<?php

// buat class laptop

class laptop {

http://www.duniailkom.com_________________________________________________________
____
4

// buat method untuk class laptop

public function hidupkan_laptop($pemilik="Joko",$merk="Samsung") {

return "Hidupkan Laptop $merk punya $pemilik";

7
8

}
}

9
10

// buat objek dari class laptop (instansiasi)

11

$laptop_andi= new laptop();

12
13

echo $laptop_andi->hidupkan_laptop();

14

// hasil: "Hidupkan Laptop Samsung punya Joko";

15
16

echo "<br />";

17
18

echo $laptop_andi->hidupkan_laptop("Andi", "Lenovo");

19

// hasil: "Hidupkan Laptop Lenovo punya Andi";

20

?>

Pada contoh kode program PHP diatas, dengan membuat method sebagai berikut:
1

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 methodadalah sebutan lain untuk function di
dalam class, maka seluruh fitur function bisa digunakan untukmethod.
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.

http://www.duniailkom.com_________________________________________________________
____

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().

Cara Penggunaan Destructor dan Constructor dalam PHP


Sebagai tutorial kita kali ini, berikut adalah contoh
penggunaan constructor dan destructor dalam PHP:
1

<?php

// buat class laptop

class laptop {

http://www.duniailkom.com_________________________________________________________
____
5

private $pemilik = "Andi";

private $merk = "Lenovo";

7
8

public function __construct(){

echo "Ini berasal dari Constructor Laptop";

10

11
12

public function hidupkan_laptop(){

13

return "Hidupkan Laptop $this->merk punya $this->pemilik";

14
15

16

public function __destruct(){

17

echo "Ini berasal dari Destructor Laptop";

18

19

20
21

// buat objek dari class laptop (instansiasi)

22

$laptop_andi= new laptop();

23
24

echo "<br />";

25

echo $laptop_andi->hidupkan_laptop();

26

echo "<br />";

27

?>

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.

http://www.duniailkom.com_________________________________________________________
____
Setelah pendefinisian class, saya membuat objek $laptop_andi, dan memanggil
methodhidupkan_laptop(). Berikut adalah hasil yang didapat:
1

Ini berasal dari Constructor Laptop

Hidupkan Laptop Lenovo punya Andi

Ini berasal dari destructor Laptop

Seperti yang terlihat, method __construct() dan __destruct() secara otomatis


dipanggil saat objekdibuat dan saat objek dihapus. Untuk mencoba
menghapus objek $laptop_andi secara manual, kita bisa menggunakan
fungsi isset() sebagai berikut:
1

<?php

// buat class laptop

class laptop {

4
5

private $pemilik = "Andi";

private $merk = "Lenovo";

7
8

public function __construct(){

echo "Ini berasal dari Constructor Laptop";

10

11
12

public function hidupkan_laptop(){

13

return "Hidupkan Laptop $this->merk punya $this->pemilik";

14
15

16

public function __destruct(){

17

echo "Ini berasal dari Destructor Laptop";

18
19

}
}

20
21

// buat objek dari class laptop (instansiasi)

22

$laptop_andi= new laptop();

http://www.duniailkom.com_________________________________________________________
____
23
24

echo "<br />";

25

echo $laptop_andi->hidupkan_laptop();

26

echo "<br />";

27
28

// hapus objek $laptop_andi

29

unset($laptop_andi);

30
31

echo "<br />";

32

echo "Objek Telah Dihancurkan";

33

?>

Jika kita menjalankan kode diatas, berikut adalah hasil yang didapat:
1

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
perintahunset($laptop_andi), maka string Objek Telah Dihancurkan akan tampil
sebelum destructor objek$laptop_andi.

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:
1

<?php

http://www.duniailkom.com_________________________________________________________
____
2

// buat class laptop

class laptop {

4
5

private $pemilik;

private $merk;

7
8

// constructor sebagai pembuat nilai awal

public function __construct($pemilik, $merk) {

10

$this->pemilik = $pemilik;

11

$this->merk = $merk;

12

13
14

public function hidupkan_laptop() {

15

return "Hidupkan Laptop $this->merk punya $this->pemilik";

16
17

}
}

18
19

// buat objek dari class laptop (instansiasi)

20

$laptop_andi= new laptop("Andi", "Lenovo");

21
22

echo $laptop_andi->hidupkan_laptop();

23

echo "<br />";

24
25

$laptop_anto= new laptop("Anto", "Acer");

26
27

echo $laptop_anto->hidupkan_laptop();

28

?>

Pada kode diatas, saya menggunakan constructor sebagai pembuat nilai awal
dari objek. Methodconstructor menerima 2 buah argumen yang kemudian
disimpan kedalam property internal objek.
Berikut adalah hasil yang didapat dari kode program diatas:

http://www.duniailkom.com_________________________________________________________
____
1

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)
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:

http://www.duniailkom.com_________________________________________________________
____
1

class induk {

2
3

//...isi class induk


}

4
5

class anak extends induk

//... class anak bisa mengakses

//... property dan method class induk

Agar lebih mudah dipahami, kita akan langsung masuk kedalam contoh program
penggunaaninheritance/penurunan di dalam PHP:
1

<?php

// buat class induk: komputer

class komputer {

4
5

public $merk;

public $processor;

public $memory;

8
9

public function beli_komputer() {

10

return "Beli komputer baru";

11
12

}
}

13
14

// turunkan class komputer ke laptop

15

class laptop extends komputer {

16
17

public function lihat_spec() {

18

return "merk: $this->merk, processor: $this->processor,

19

memory: $this->memory";

http://www.duniailkom.com_________________________________________________________
____
20
21

}
}

22
23

// buat objek dari class laptop (instansiasi)

24

$laptop_baru = new laptop();

25
26

// isi property objek

27

$laptop_baru->merk = "acer";

28

$laptop_baru->processor ="intel core i5";

29

$laptop_baru->memory = "2 GB";

30
31

//panggil method objek

32

echo $laptop_baru->beli_komputer();

33

echo "<br />";

34

echo $laptop_baru->lihat_spec();

35

?>

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 menurunkanclass komputer kedalam class laptop. Di
dalam class laptop, kita bisa mengakses seluruh property danmethod 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:
1

<?php

// buat class komputer

class komputer {

http://www.duniailkom.com_________________________________________________________
____
4

protected function beli_komputer() {

return "Beli komputer baru";

6
7

}
}

8
9

// turunkan class komputer ke laptop

10

class laptop extends komputer {

11

protected function beli_laptop() {

12

return "Beli laptop baru";

13
14

}
}

15
16

// turunkan class laptop ke chromebook

17

class chromebook extends laptop {

18

protected function beli_chromebook() {

19

return "Beli chromebook baru";

20

21
22

public function beli_semua(){

23

$a = $this->beli_komputer();

24

$b = $this->beli_laptop();

25

$c = $this->beli_chromebook();

26

return "$a <br /> $b <br /> $c";

27
28

}
}

29
30

// buat objek dari class laptop (instansiasi)

31

$gadget_baru = new chromebook();

32

http://www.duniailkom.com_________________________________________________________
____
33

//panggil method objek

34

echo $gadget_baru->beli_semua();

35
36

// $gadget_baru->beli_komputer();

37

// Fatal error: Call to protected method komputer::beli_komputer()

38

?>

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:
1

<?

$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 ataumethod 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

http://www.duniailkom.com_________________________________________________________
____
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:
1

<?php

// buat class komputer

class komputer {

4
5

public function lihat_spec() {

return "Spec Komputer: Acer,

Processor Intel core i7, Ram 4GB";

8
9

}
}

10
11

// turunkan class komputer ke laptop

12

class laptop extends komputer {

13
14

public function lihat_spec() {

15

return "Spec Laptop: Asus,

16

Processor Intel core i5, Ram 2GB";

17

18

19

// buat objek dari class laptop (instansiasi)

20

$gadget_baru = new laptop();

http://www.duniailkom.com_________________________________________________________
____
21
22

//panggil method lihat_spec()

23

echo $gadget_baru->lihat_spec();

24

?>

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:
1

Spec Laptop: Asus, Processor Intel core i5, Ram 2GB

Berdasarkan hasil yang di dapat, terlihat bahwa method yang dijalankan


adalah method milik classlaptop.
Di dalam PHP, ketika nama property atau nama method child class memiliki nama
yang sama denganparent 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 ataustatic method, serta constanta class. Untuk saat ini, kita
akan fokus kepada overridden property atauoverridden 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:
1

parent::nama_property;

parent::nama_method();

Kembali kepada contoh program, kali ini kita ingin menampilkan


method lihat_spec() dari classkomputer:
1

<?php

http://www.duniailkom.com_________________________________________________________
____
2

// buat class komputer

class komputer {

4
5

public function lihat_spec() {

return "Spec Komputer: Acer,

Processor Intel core i7, Ram 4GB";

8
9

}
}

10
11

// turunkan class komputer ke laptop

12

class laptop extends komputer {

13
14

public function lihat_spec() {

15

return "Spec Laptop: Asus,

16

Processor Intel core i5, Ram 2GB";

17

18
19

public function lihat_spec_komputer() {

20

return parent::lihat_spec();

21

22

23

// buat objek dari class laptop (instansiasi)

24

$gadget_baru = new laptop();

25
26

//panggil method lihat_spec()

27

echo $gadget_baru->lihat_spec();

28
29
30

echo "<br />";

http://www.duniailkom.com_________________________________________________________
____
31

//panggil method lihat_spec_komputer()

32

echo $gadget_baru->lihat_spec_komputer();

33

?>

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:
1

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:
1

<?php

// buat class komputer

class komputer {

4
5

public $merk = "acer";

6
7

public function lihat_spec() {

return "Spec Komputer: Acer,

Processor Intel core i7, Ram 4GB";

10
11

}
}

12
13

// turunkan class komputer ke laptop

14

class laptop extends komputer {

15

public $merk = "asus";

16
17

public function lihat_spec() {

18

return "Spec Laptop: Asus,

http://www.duniailkom.com_________________________________________________________
____
19

Processor Intel core i5, Ram 2GB";

20

21
22

public function lihat_spec_komputer() {

23

return parent::lihat_spec();

24

25

public function lihat_merk_komputer() {

26

return parent::$merk;

27

28

29

// buat objek dari class laptop (instansiasi)

30

$gadget_baru = new laptop();

31
32

//panggil method lihat_spec()

33

echo $gadget_baru->lihat_spec();

34
35

echo "<br />";

36
37

//panggil method lihat_spec_komputer()

38

echo $gadget_baru->lihat_spec_komputer();

39
40

//panggil method lihat_merk_komputer()

41

echo $gadget_baru->lihat_merk_komputer();

42

?>

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:
1

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

http://www.duniailkom.com_________________________________________________________
____
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
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:

http://www.duniailkom.com_________________________________________________________
____
1

<?php

// buat class komputer

class komputer {

4
5

// buat constructor class komputer

public function __construct() {

echo "Constructor dari class komputer <br />";

9
10

// buat destructor class komputer

11

public function __destruct() {

12

echo "Destructor dari class komputer <br />";

13
14

}
}

15
16

// turunkan class komputer ke laptop

17

class laptop extends komputer {

18

19
20

// turunkan class laptop ke chromebook

21

class chromebook extends laptop {

22

23

// buat objek dari class chromebook (instansiasi)

24

$gadget_baru = new chromebook();

25
26

echo "Belajar OOP PHP <br />";

27

?>

Pada kode diatas, saya membuat class komputer


dengan construktor dan destructor. Class komputerkemudian diturunkan
kepada class laptop, kemudian diturunkan kembali kepada class chromebook.
Baik class laptop maupun class chromebook tidak memiliki property maupun

http://www.duniailkom.com_________________________________________________________
____
method. Classchromebook inilah yang akan kita instansiasi kedalam
objek $gadget_baru.
Ketika program itu dijalankan, berikut adalah hasil yang didapat:
1

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


Dalam kode program diatas, saya tidak
membuat constructor dan destructor untuk class laptop danclass chromebook.
Tapi bagaimana jika ketiga class ini juga memiliki constructor dan destructor? Mari
kita coba:
1

<?php

// buat class komputer

class komputer {

4
5

// buat constructor class komputer

public function __construct() {

echo "Constructor dari class komputer <br />";

9
10

// buat destructor class komputer

11

public function __destruct() {

12

echo "Destructor dari class komputer <br />";

13
14

}
}

15
16

// turunkan class komputer ke laptop

17

class laptop extends komputer {

http://www.duniailkom.com_________________________________________________________
____
18
19

// buat constructor class laptop

20

public function __construct() {

21

echo "Constructor dari class laptop <br />";

22

23
24

// buat destructor class laptop

25

public function __destruct() {

26

echo "Destructor dari class laptop";

27
28

}
}

29
30

// turunkan class laptop ke chromebook

31

class chromebook extends laptop {

32
33

// buat constructor class chromebook

34

public function __construct() {

35

echo "Constructor dari class chromebook <br />";

36

37
38

// buat destructor class chromebook

39

public function __destruct() {

40

echo "Destructor dari class chromebook <br />";

41

42

43

// buat objek dari class chromebook (instansiasi)

44

$gadget_baru = new chromebook();

45
46

echo "Belajar OOP PHP <br />";

http://www.duniailkom.com_________________________________________________________
____
47

?>

Kode diatas memiliki constructor dan destructor pada masing-masing class, mari
kita lihat hasilnya:
1

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. Karena di dalam
contoh kita class chromebook memiliki constructor dandestructor,
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:
1

<?php

// buat class komputer

class komputer {

public function __construct() {

echo "Constructor dari class komputer <br />";

7
8

public function __destruct() {

echo "Destructor dari class komputer <br />";

10
11

}
}

12
13

// turunkan class komputer ke laptop

14

class laptop extends komputer {

15

public function __construct() {

http://www.duniailkom.com_________________________________________________________
____
16

parent::__construct();

17

echo "Constructor dari class laptop <br />";

18

19
20

public function __destruct() {

21

echo "Destructor dari class laptop <br />";

22

parent::__destruct();

23
24

}
}

25
26

// turunkan class laptop ke chromebook

27

class chromebook extends laptop {

28

public function __construct() {

29

parent::__construct();

30

echo "Constructor dari class chromebook <br />";

31

32
33

public function __destruct() {

34

echo "Destructor dari class chromebook <br />";

35

parent::__destruct();

36
37

}
}

38
39

// buat objek dari class chromebook (instansiasi)

40

$gadget_baru = new chromebook();

41
42

echo "Belajar OOP PHP <br />";

43

?>

Hasil yang kita dapat adalah:


1

Constructor dari class komputer

http://www.duniailkom.com_________________________________________________________
____
2

Constructor dari class laptop

Constructor dari class chromebook

Belajar OOP PHP

Destructor dari class chromebook

Destructor dari class laptop

Destructor dari class komputer

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
mendefenisikanconstructor 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 danmethod 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:
1

// static property

http://www.duniailkom.com_________________________________________________________
____
2

public static $harga_beli;

3
4

// static method

public static function beli_laptop() {

6
7

//...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:
1

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:
1

<?php

// buat class laptop

class laptop {

public $merk;

public $pemilik;

6
7

// static property

public static $harga_beli;

9
10

//static method

11

public static function beli_laptop() {

12
13

return "Beli Laptop";


}

http://www.duniailkom.com_________________________________________________________
____
14

15
16

// set static property

17

laptop::$harga_beli=4000000;

18
19

// get static property

20

echo "harga beli : Rp".laptop::$harga_beli;

21
22

echo "<br />";

23
24

// panggil static method

25

echo laptop::beli_laptop();

26

?>

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:
1

<?php

// buat class laptop

class laptop {

public $merk;

public $pemilik;

6
7

// static property

public static $harga_beli;

http://www.duniailkom.com_________________________________________________________
____
10

//static method

11

public static function beli_laptop() {

12

return "Beli laptop seharga Rp".self::$harga_beli;

13
14

}
}

15
16

// set static property

17

laptop::$harga_beli=4000000;

18
19

// panggil static method

20

echo laptop::beli_laptop();

21

?>

Pada kode program PHP diatas, saya menggunakan perintah self::$harga_beli,


untuk memanggilstatic property dari dalam class laptop itu sendiri.

Cara Mengakses Static Property dan Static Method Parent Class


Untuk class dengan penurunan (inheritance), kita bisa
menggunakan keywordparent::nama_property dan parent::nama_method untu
k mengakses static property dan static method dari parent class.
Misalnya class laptop adalah turunan dari class komputer, kita bisa menggunakan
perintahparent::beli_komputer() untuk mengakses static method pada class
komputer dari dalam class laptop.
Berikut adalah contoh pengaksesan static method milik parent class:
1

<?php

// buat class komputer

class komputer {

4
5

// protected static method

protected static function beli_komputer(){

7
8

return "Beli Komputer Baru";


}

http://www.duniailkom.com_________________________________________________________
____
9

10
11

// turunkan class komputer ke class laptop

12

class laptop extends komputer{

13
14

// private static method

15

private static function beli_laptop(){

16

return "Beli Laptop Baru";

17

18
19

// public static method

20

public static function beli_semua(){

21

echo parent::beli_komputer();

22

echo "<br />";

23

echo self::beli_laptop();

24
25

}
}

26
27
28

// panggil static method

29

laptop::beli_semua();

30
31

// coba panggil private static method

32

// laptop::beli_laptop();

33

// Fatal error: Call to private method laptop::beli_laptop()

34

?>

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.

http://www.duniailkom.com_________________________________________________________
____
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
komputermenggunakan perintah parent::beli_komputer(). Ini adalah cara
pemanggilan static method milikparent 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().
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.

http://www.duniailkom.com_________________________________________________________
____

Berikut adalah contoh kode program pembuatan constanta di dalam class:


1

class nama_class {

2
3

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:
1

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:
1

<?php

// buat class laptop

class laptop {

// buat konstanta

const DOLLAR = '12000';

7
8

// panggil konstanta class

echo "Harga dollar saat ini = Rp. ".laptop::DOLLAR;

10

// hasil: Harga dollar saat ini = Rp. 12000

http://www.duniailkom.com_________________________________________________________
____
11

?>

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:
1

<?php

// buat class laptop

class laptop {

// buat konstanta

const DOLLAR = '12000';

7
8

// buat objek dari class laptop (instansiasi)

$laptop_baru = new laptop();

10
11

// panggil konstanta class

12

echo "Harga dollar saat ini = Rp ".$laptop_baru::DOLLAR;

13

// hasil: Harga dollar saat ini = Rp. 12000

14

?>

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:
1

<?php

// buat class laptop

class laptop {

4
5

// buat konstanta

const DOLLAR = '12000';

http://www.duniailkom.com_________________________________________________________
____
8
9

// buat variabel dengan nama class

10

$nama = "laptop";

11
12

// panggil konstanta class

13

echo "Harga dollar saat ini = Rp. ".$nama::DOLLAR;

14

// hasil: Harga dollar saat ini = Rp. 12000

15

?>

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


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:
1

<?php

// buat class laptop

class laptop {

4
5

// buat konstanta

const DOLLAR = '12000';

7
8

// buat method

public function beli_laptop($harga) {

10

return "Beli Komputer Baru, Rp. ".$harga*self::DOLLAR;

11
12

}
}

13
14

// buat objek dari class laptop (instansiasi)

http://www.duniailkom.com_________________________________________________________
____
15

$laptop_baru=new laptop();

16
17

echo $laptop_baru->beli_laptop(400);

18

// hasil: Beli Komputer Baru, Rp. 4800000

19

?>

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:
1

<?php

// buat class komputer

class komputer {

// buat konstanta class komputer

const DOLLAR = '11000';

7
8

// turunkan class komputer ke class laptop

class laptop extends komputer {

10

// buat konstanta class laptop

11

const DOLLAR = '12000';

12
13

// buat method dengan konstanta class komputer

http://www.duniailkom.com_________________________________________________________
____
14

public function beli_komputer($harga){

15

return "Beli Komputer Baru, Rp .".$harga*parent::DOLLAR;

16

17
18

// buat method dengan konstanta class laptop

19

public function beli_laptop($harga){

20

return "Beli Komputer Baru, Rp .".$harga*self::DOLLAR;

21
22

}
}

23
24

// buat objek dari class laptop (instansiasi)

25

$laptop_baru=new laptop();

26
27

echo $laptop_baru->beli_laptop(400);

28

echo "<br />";

29

echo $laptop_baru->beli_komputer(400);

30

?>

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.

http://www.duniailkom.com_________________________________________________________
____

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:
1

final public function nama_method(){

2
3

//... isi method


}

Sedangkan untuk membuat final class, kita menambahkan kata final sebelum
nama class, seperti contoh berikut ini:
1

final class nama_class {

2
3

//... isi class


}

Cara Penggunaan Final Method dan Final Class dalam PHP

http://www.duniailkom.com_________________________________________________________
____
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:
1

<?php

class komputer{

final public function lihat_spec(){

return "Lihat Spesifikasi Komputer";

5
6

}
}

7
8

class laptop extends komputer{

public function lihat_spec(){

10

return "Lihat Spesifikasi Laptop";

11
12

}
}

13
14

$laptop_baru=new laptop();

15

// Fatal error: Cannot override final method

16

// komputer::lihat_spec()

17

?>

Pada kode program diatas, class komputer memiliki method lihat_spec() yang diset 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:
1

<?php

http://www.duniailkom.com_________________________________________________________
____
2

final class komputer{

function lihat_spec(){

return "Lihat Spesifikasi Komputer";

5
6

}
}

7
8

class laptop extends komputer{

10
11

$laptop_baru=new laptop();

12

// Fatal error: Class laptop may not inherit

13

// from final class (komputer)

14

?>

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:
1

<?php

class komputer {

3
4

final $merk;
}

5
6

$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
:)

http://www.duniailkom.com_________________________________________________________
____
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().
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.

http://www.duniailkom.com_________________________________________________________
____
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 aturan-aturan 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:
1

<?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:
1

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 sebagaiabstract 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:
1

<?php

abstract class komputer {

http://www.duniailkom.com_________________________________________________________
____
3

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.
1

abstract class komputer {

abstract public function lihat_spec($pemilik);

5
6

$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.
1

<?php

// buat abstract class

abstract class komputer{

4
5

// buat abstract method

abstract public function lihat_spec($pemilik);

http://www.duniailkom.com_________________________________________________________
____
7
8

// buat method biasa

public function hidupkan_komputer(){

10

echo "Hidupkan Komputer";

11

12

13

?>

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.
1

<?php

// buat abstract class

abstract class komputer{

// buat abstract method

abstract public function lihat_spec();

7
8

class laptop extends komputer{

public function beli_laptop(){

10

return "Beli Laptop...";

11
12

}
}

13
14

// buat objek dari class laptop

15

$laptop_baru = new laptop();

16
17

// Fatal error: Class laptop contains 1 abstract method

18

// and must therefore be declared abstract or implement

http://www.duniailkom.com_________________________________________________________
____
19

// the remaining methods (komputer::lihat_spec)

20

?>

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 :
1

<?php

// buat abstract class

abstract class komputer{

// buat abstract method

abstract public function lihat_spec();

7
8

class laptop extends komputer{

9
10

// implementasi abstract method

11

public function lihat_spec(){

12

return "Lihat Spec Laptop...";

13

14
15

// method 'biasa'

16

public function beli_laptop(){

17

return "Beli Laptop...";

18
19

}
}

20
21

// buat objek dari class laptop

22

$laptop_baru = new laptop();

23

echo $laptop_baru->lihat_spec();

24

// Lihat Spec Laptop...

http://www.duniailkom.com_________________________________________________________
____
25
26

echo "<br />";

27
28

echo $laptop_baru->beli_laptop();

29

// Beli Laptop...

30

?>

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:
1

<?php

// buat abstract class

abstract class komputer{

// buat abstract method

abstract public function lihat_spec($pemilik);

7
8

class laptop extends komputer{

public function lihat_spec(){

10

return "Lihat Spec Laptop...";

11
12

}
}

13
14

// buat objek dari class laptop

15

$laptop_baru = new laptop();

16
17

// Fatal error: Declaration of laptop::lihat_spec()

18

// must be compatible with komputer::lihat_spec($pemilik)

http://www.duniailkom.com_________________________________________________________
____
19

?>

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:
1

<?php

// buat abstract class

abstract class komputer{

// buat abstract method

abstract public function lihat_spec($pemilik);

6
7

public static function hidupkan_komputer(){

echo "Hidupkan Komputer";

9
10
11

}
}

12
13

echo komputer::hidupkan_komputer();

14

// Hidupkan Komputer

15

?>

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:
1

<?php

// buat abstract class

abstract class komputer{

http://www.duniailkom.com_________________________________________________________
____
4

// buat abstract method

abstract public function lihat_spec();

abstract public function lihat_processor();

abstract public function lihat_harddisk();

abstract public function lihat_pemilik();

10
11

class laptop extends komputer{

12
13

// .. isi class laptop


}

14
15

class pc extends komputer{

16
17

// .. isi class pc
}

18
19

class netbook extends komputer{

20

// .. isi class netbook

21

22

?>

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.

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

http://www.duniailkom.com_________________________________________________________
____
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 classclass 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:
1

<?php

interface mouse

//...isi dari interface mouse

?>

Isi dari interface adalah signature method (nama dan parameter method):
1

<?php

http://www.duniailkom.com_________________________________________________________
____
2
3

interface mouse{
public function klik_kanan();

public function klik_kiri();

public function scroll();

6
7
8

public function double_klik();


}
?>

Untuk menggunakan method kedalam class, kita


menggunakan keyword implements, seperti contoh berikut:
1

<?php

interface mouse{

public function klik_kanan();

public function klik_kiri();

6
7

class laptop implements mouse{

8
9

//... isi dari class laptop


}

10
11

class pc implements mouse{

12

//... isi dari class pc

13

14

?>

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:
1

<?php

http://www.duniailkom.com_________________________________________________________
____
2

interface mouse{

public function klik_kanan();

public function klik_kiri();

6
7

class laptop implements mouse{

public function klik_kanan(){

return "Klik Kanan...";

10

11

public function klik_kiri(){

12

return "Klik Kiri...";

13
14

}
}

15
16

$laptop_baru = new laptop();

17

echo $laptop_baru->klik_kanan();

18

// Klik Kanan...

19

?>

Apabila kita tidak membuat ulang salah satu method yang ada di interface, PHP
akan mengeluarkanerror:
1

<?php

interface mouse{

public function klik_kanan();

public function klik_kiri();

6
7

class laptop implements mouse{

public function klik_kanan(){

9
10

return "Klik Kanan...";


}

http://www.duniailkom.com_________________________________________________________
____
11

12
13

$laptop_baru = new laptop();

14

// Fatal error: Class laptop contains 1 abstract method

15

// and must therefore be declared abstract

16

// or implement the remaining methods (mouse::klik_kiri)

17

?>

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:
1

<?php

interface mouse{

public function klik_kanan();

protected function klik_kiri();

6
7

class laptop implements mouse{

public function klik_kanan(){

return "Klik Kanan...";

10

11

public function klik_kiri(){

12

return "Klik Kiri...";

13
14

}
}

15
16

$laptop_baru = new laptop();

17

// Fatal error: Access type for interface

http://www.duniailkom.com_________________________________________________________
____
18

// method mouse::klik_kiri() must be omitted

19

?>

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.
1

<?php

interface mouse{

public function klik_kanan();

public function klik_kiri();

6
7

class laptop implements mouse{

public function klik_kanan(){

return "Klik Kanan...";

10

11
12

protected function klik_kiri(){

13

return "Klik Kiri...";

14
15

}
}

16
17

$laptop_baru = new laptop();

18

// Fatal error: Access level to laptop::klik_kiri()

19

// must be public (as in class mouse)

20

?>

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)


Di dalam PHP, interface bisa diturunkan kedalam interface lain. Prosesnya mirip
dengan penurunanclass, yakni dengan menggunakan kata kunci extends:

http://www.duniailkom.com_________________________________________________________
____
1

<?php

interface mouse{

public function klik_kanan();

public function klik_kiri();

6
7

interface mouse_gaming extends mouse{

8
9

public function ubah_dpi();


}

10
11

class laptop implements mouse_gaming{

12

public function klik_kanan(){

13

return "Klik Kanan...";

14

15
16

public function klik_kiri(){

17

return "Klik Kiri...";

18

19
20

public function ubah_dpi(){

21

return "Ubah settingan DPI mouse";

22
23

}
}

24
25

$laptop_baru = new laptop();

26

echo $laptop_baru->ubah_dpi();

27

// Ubah settingan DPI mouse

28

?>

Interface Bisa Memiliki Konstanta

http://www.duniailkom.com_________________________________________________________
____
Dalam PHP, Interface bisa memiliki konstanta . Berikut adalah contoh penggunaan
konstanta di dalam interface:
1

<?php

interface mouse{

const JENIS = "Laser Mouse";

public function klik_kanan();

public function klik_kiri();

7
8

echo mouse::JENIS;

// Laser Mouse

10

?>

Untuk mengakses konstanta dari interface, kita menggunakan perintah


nama_interface::nama_konstanta.

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:
1

<?php

interface mouse{

public function klik_kanan();

public function klik_kiri(){

return "Klik Kiri...";

6
7

}
}

8
9
10

class laptop implements mouse{


public function klik_kanan(){

11
12

return "Klik Kanan...";


}

http://www.duniailkom.com_________________________________________________________
____
13

14
15

$laptop_baru = new laptop();

16

// Fatal error: Interface function

17

// mouse::klik_kiri() cannot contain body

18

?>

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:
1

<?php

interface mouse{

public function klik_kanan();

public function klik_kiri();

6
7

interface keyboard{

8
9

public function tekan_enter();


}

10
11
12

class laptop implements mouse, keyboard{


public function klik_kanan(){

13
14

return "Klik Kanan...";


}

15
16
17

public function klik_kiri(){


return "Klik Kiri...";

http://www.duniailkom.com_________________________________________________________
____
18

19
20

public function tekan_enter(){

21

return "Tekan Tombol Enter...";

22
23

}
}

24
25

$laptop_baru = new laptop();

26

echo $laptop_baru->tekan_enter();

27

// Tekan Tombol Enter...

28

?>

Dalam contoh diatas saya membuat dua buah interface, yakni mouse dan keyboard.
Kedua interfaceini kemudian digunakan oleh class laptop.

Fungsi Interface dalam Pemrograman Objek


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.

http://www.duniailkom.com_________________________________________________________
____

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:
1

<?php

// buat abstract class

abstract class komputer{

// buat abstract method

abstract public function booting_os();

7
8

class laptop extends komputer{

public function booting_os(){

10

return "Proses Booting Sistem Operasi Laptop";

11
12

}
}

13
14

class pc extends komputer{

15

public function booting_os(){

16

return "Proses Booting Sistem Operasi PC";

17
18
19

}
}

http://www.duniailkom.com_________________________________________________________
____
20

class chromebook extends komputer{

21

public function booting_os(){

22

return "Proses Booting Sistem Operasi Chromebook";

23
24

}
}

25
26
27

// buat objek dari class diatas

28

$laptop_baru = new laptop();

29

$pc_baru = new pc();

30

$chromebook_baru = new chromebook();

31
32

// buat fungsi untuk memproses objek

33

function booting_os_komputer($objek_komputer){

34
35

return $objek_komputer->booting_os();
}

36
37

// jalankan fungsi

38

echo booting_os_komputer($laptop_baru);

39

echo "<br />";

40

echo booting_os_komputer($pc_baru);

41

echo "<br />";

42

echo booting_os_komputer($chromebook_baru);

43

?>

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

http://www.duniailkom.com_________________________________________________________
____
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 fungsibooting_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 bersamasama.
Berikut adalah revisi kode program kita sebelumnya dengan
menggunakan abstract class daninterface:
1

<?php

// buat abstract class

abstract class komputer{

// buat abstract method

abstract public function booting_os();

7
8

interface mouse{

9
10

public function double_klik();


}

11
12
13

class laptop extends komputer implements mouse{


public function booting_os(){

14

return "Proses Booting Sistem Operasi Laptop";

15

16

public function double_klik(){

17

return "Double Klik Mouse Laptop";

http://www.duniailkom.com_________________________________________________________
____
18
19

}
}

20
21

class pc extends komputer implements mouse{

22

public function booting_os(){

23

return "Proses Booting Sistem Operasi PC";

24

25

public function double_klik(){

26

return "Double Klik Mouse PC";

27
28

}
}

29
30

class chromebook extends komputer implements mouse{

31

public function booting_os(){

32

return "Proses Booting Sistem Operasi Chromebook";

33

34

public function double_klik(){

35

return "Double Klik Mouse Chromebook";

36
37

}
}

38
39

// buat objek dari class diatas

40

$laptop_baru = new laptop();

41

$pc_baru = new pc();

42

$chromebook_baru = new chromebook();

43
44

// buat fungsi untuk memproses objek

45

function booting_os_komputer($objek_komputer){

46

return $objek_komputer->booting_os();

http://www.duniailkom.com_________________________________________________________
____
47

48
49

function double_klik_komputer($objek_komputer){

50
51

return $objek_komputer->double_klik();
}

52
53

// jalankan fungsi

54

echo booting_os_komputer($laptop_baru);

55

echo "<br />";

56

echo double_klik_komputer($laptop_baru);

57

echo "<br />";=-?

58

echo "<br />";

59
60

echo booting_os_komputer($pc_baru);

61

echo "<br />";

62

echo double_klik_komputer($pc_baru);

63

echo "<br />";

64

echo "<br />";

65
66

echo booting_os_komputer($chromebook_baru);

67

echo "<br />";

68

echo double_klik_komputer($chromebook_baru);

69

?>

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

http://www.duniailkom.com_________________________________________________________
____
alur kode program yang terorganisir untuk mengurangi adanya perulangan kode
program.

Anda mungkin juga menyukai