PHP adalah salah satu bahasa pemrograman sisi server yang paling banyak digunakan di dunia pemrograman web. PHP umumnya ditulis di dalam sebuah dokumen file berekstensi .php dan sintaksnya dibuka oleh tag
<?php
dan ditutup dengan tag ?>
.Variabel
Variabel adalah wadah untuk menyimpan suatu nilai. Pada PHP, syarat variabel diantaranya:- variabel diawali oleh tanda
$
diikuti oleh nama variabelnya - nama variabel hanya boleh diawali oleh huruf dan underscore
- nama variabel hanya boleh mengandung alfanumerik (A-z, 0-9, dan _)
- nama variabel bersifat case sensitive (huruf kapital dan non-kapital dianggap berbeda)
Echo
Echo adalah perintah untuk menampilkan output nilai ke layar. Kita dapat menampilkan output berupa nilai langsung ataupun nilai dari sebuah variabel. Perhatikan dan jalankan contoh kode di samping dan lihat masing-masing outputnya. Perhatikan juga keterangan komentar dari masing-masing barisnya.Tipe Data
Tipe data adalah jenis dari data yang digunakan pada sebuah variabel. PHP mendukung tipe data berikut:- String adalah susunan dari huruf, angka dan karakter lainnya, seperti
"Halo Coders!"
. String ditulis dengan diapit oleh tanda kutip (") atau tanda petik ('). - Integer adalah tipe data angka non-desimal, dengan rentang -2,147,483,648 hingga 2,147,483,647.
- Float adalah tipe data angka desimal. Tanda desimal yang digunakan adalah tanda titik.
- Boolean adalah tipe data yang menyatakan dua kondisi,
TRUE
danFALSE
. - Array adalah tipe data yang digunakan untuk menyimpan lebih dari satu nilai data dalam satu variabel.
- Object adalah tipe data yang menyimpan nilai data beserta sejumlah operasi data. Objek akan dibahas detail di pembahasan OOP.
- NULL adalah tipe data dengan satu nilai saja, yakni
NULL
. Suatu variabel yang tidak berisi nilai dari tipe data lain, maka variabel tersebut bernilaiNULL
.
echo
. Akan tetapi echo
tidak akan menampilkan nilai dengan tipe data kompleks (yang tidak
memiliki nilai tunggal). Untuk tipe data kompleks, kita dapat
menggunakan perintah print_r()
atau var_dump()
. Fungsi var_dump()
akan menampilkan output nilai berikut tipe datanya.Konstanta
Konstanta adalah sebuah nama (seperti variabel) untuk menyimpan suatu nilai. Berbeda dengan variabel, nilai dari konstanta tidak dapat diubah setelah dia didefinisikan. Selain itu, konstanta tidak menggunakan karakter$
di awalnya.Membuat sebuah konstanta tidak menggunakan operator assignment (=) seperti pada saat membuat variabel, melainkan menggunakan fungsi
define(name, value, case-insensitive)
name
adalah nama konstanta. value
adalah nilai dari konstanta. case-insensitive
adalah penentuan apakah konstanta akan bersifat case-insensitive (tidak memperhitungkan huruf kapital dan non-kapital), yang defaultnya bernilai false
(artinya secara default bersifat case-sensitive).Operator Aritmatika
Operator digunakan untuk melakukan operasi terhadap suatu nilai dan variabel.Operator Aritmatika digunakan untuk melakukan operasi aritmatik terhadap nilai numerik, seperti penjumlahan, pengurangan, perkalian, pembagian, dan sebagainya.
Op | Nama | Contoh | Keterangan |
---|---|---|---|
+ | Penjumlahan | $x + $y | Penjumlahan nilai $x dan $y |
- | Pengurangan | $x - $y | Pengurangan nilai $x oleh $y |
* | Perkalian | $x * $y | Perkalian nilai $x dan $y |
/ | Pembagian | $x / $y | Pembagian nilai $x oleh $y |
% | Modulus | $x % $y | Sisa dari pembagian $x oleh $y |
** | Perpangkatan | $x ** $y | Hasil dari $x pangkat $y (mulai PHP 5.6) |
Operator Penugasan (Assignment)
Operator penugasan (assignment) digunakan untuk menuliskan nilai pada suatu variabel. Operator penugasan yang paling umum digunakan adalah operator 'sama dengan'=
. Operator ini digunakan untuk mengisi variabel yang ada di sebelah kiri dengan nilai yang ada di sebelah kanan. Misalnya $x = 2
berarti kita mengisi variabel $x dengan nilai 2. Atau $x = $y
yang berarti kita mengisi variabel $x dengan nilai yang ada di dalam variabel $y.Selain itu, kita dapat menyisipkan operator aritmatika sebelum tanda
=
,
yang berarti mengisi variabel di sebelah kiri operator dengan hasil
operasi dari variabel sebelah kiri sebelum diisi dengan nilai di sebelah
kanan. Agar lebih paham, perhatikan tabel berikut:Contoh | Serupa | Keterangan |
---|---|---|
$x += $y | $x = $x + $y | $x diisi dengan nilai dari $x sebelumnya ditambah nilai $y |
$x -= $y | $x = $x - $y | $x diisi dengan nilai dari $x sebelumnya dikurangi nilai $y |
$x *= $y | $x = $x * $y | $x diisi dengan nilai dari $x sebelumnya dikali nilai $y |
$x /= $y | $x = $x / $y | $x diisi dengan nilai dari $x sebelumnya dibagi nilai $y |
$x %= $y | $x = $x % $y | $x diisi dengan sisa nilai dari $x sebelumnya dibagi nilai $y |
$x **= $y | $x = $x ** $y | $x diisi dengan nilai dari $x sebelumnya dipangkatkan nilai $y |
Operator Perbandingan
Operator perbandingan digunakan untuk membandingkan dua buah nilai numerik atau string. Output dari operasi ini adalah nilaiTRUE
atau FALSE
.Op | Nama | Contoh | Hasil |
---|---|---|---|
== | Sama dengan | $x == $y | TRUE bila nilai $x sama dengan $y |
=== | Identik | $x === $y | TRUE bila nilai $x sama dengan $y, DAN tipe data keduanya sama |
!= | Tidak sama dengan | $x != $y | TRUE bila nilai $x tidak sama dengan $y |
<> | TIdak sama dengan | $x <> $y | TRUE bila nilai $x tidak sama dengan $y |
!== | Tidak identik | $x !== $y | TRUE bila nilai $x tidak sama dengan $y, ATAU tipe data keduanya berbeda |
> | Lebih dari | $x > $y | TRUE bila nilai $x lebih dari $y |
< | Kurang dari | $x < $y | TRUE bila nilai $x kurang dari $y |
>= | Lebih dari atau sama dengan | $x >= $y | TRUE bila nilai $x lebih dari atau sama dengan $y |
<= | Kurang dari atau sama dengan | $x <= $y | TRUE bila nilai $x kurang dari atau sama dengan $y |
Operator Increment-Decrement
Operator increment-decrement adalah operator yang digunakan untuk menaikkan atau menurunkan sebanyak satu dari nilai variabel yang dikenai operasi. Operator increment adalah tanda++
yang disimpan sebelum atau sesudah variabel, dan operator decrement adalah tanda --
yang disimpan sebelum atau sesudah operasi. Agar lebih jelas lihat tabel berikut:
Operator | Nama | Keterangan |
---|---|---|
++$x | pre-increment | tambah nilai $x sebanyak 1, kemudian kembalikan nilai $x |
$x++ | post-increment | kembalikan nilai $x, lalu tambah nilai $x sebanyak 1 |
--$x | pre-decrement | kurangi nilai $x sebanyak 1, kemudian kembalikan nilai $x |
$x-- | post-decrement | kembalikan nilai $x, lalu kurangi nilai $x sebanyak 1 |
Operator Logika
Operator logika digunakan untuk membandingkan dua pernyataan kondisi. Kondisi yang dimaksud adalah nilai variabel atau hasil perbandingan variabel dalam tipe data boolean (TRUE dan FALSE). Operator logika yang tersedia diantaranyaand
, or
, xor
dan not
.Op | Nama | Contoh | Output |
---|---|---|---|
and && |
And | $x and $y $x && $y |
TRUE hanya bila $x and $y keduanya bernilai TRUE |
or || |
Or | $x or $y $x || $y |
TRUE bila salahsatu atau keduanya dari $x atau $y bernilai TRUE |
xor |
Xor | $x xor $y |
TRUE bila hanya salahsatu saja (tidak keduanya) dari $x atau $y bernilai TRUE |
! |
Not | !$x |
TRUE bila $x bernilai FALSE |
Operator String
Operator string sangat membantu dan akan sering digunakan pada operasi yang berkaitan dengan data string. Operasi yang dimaksud adalah konkatenansi atau penggabungan dua buah string, dan operator yang digunakan adalah tanda titik.
.Selain itu, operator konkatenansi ini juga dapat digunakan pada operasi assignment, seperti halnya operator aritmatika.
$x .= $y;
Contoh kode di atas artinya kita mengisi variabel $x
dengan nilai string hasil penggabungan antara nilai variabel $x
sebelumnya dengan nilai variabel $y
.Statemen If
Seringkali kita harus melakukan suatu operasi hanya pada kondisi tertentu saja. Artinya kita mengecek terlebih dahulu sebuah kondisi, yang apabila kondisi tersebut terpenuhi (atau bernilai true), maka kita lakukan serangkaian operasi.Statemen if digunakan untuk mengecek kondisi dan bila kondisi bernilai true, maka program tertentu akan dijalankan. Penulisan sintaksnya adalah:
if(kondisi) {
// kode untuk dieksekusi bila kondisi bernilai true
}
Pada bagian kondisi, kita isi dengan suatu variabel yang nantinya akan dicek nilainya. Variabel bernilai false, null, string kosong atau 0 akan menghasilkan output false, dan selain nilai tersebut akan memberikan output true. Selain itu kita juga dapat membandingkan variabel menggunakan operator perbandingan dan operator logika, atau hasil keluaran dari sebuah fungsi.
Statemen if..else
Adakalanya kita harus mengeksekusi satu blok kode program saat suatu kondisi terpenuhi, dan mengeksekusi blok kode program lain yang berbeda bila kondisi tidak terpenuhi. Untuk itu kita gunakan statemen if..else.if (kondisi) {
// kode untuk dieksekusi bila kondisi bernilai TRUE
} else {
// kode untuk dieksekusi bila kondisi bernilai FALSE
}
Statemen if..elseif..else
Adakalanya kita harus mengecek beberapa kondisi dan hanya menjalankan kode dari salahsatu kondisi yang terpenuhi saja. Untuk itu kita dapat menggunakan statemen if..else if..else dst.if(kondisi a){
// kode bila kondisi a terpenuhi
} else if(kondisi b){
// kode bila kondisi b terpenuhi
..
..
} else if(kondisi n) {
// kode bila kondisi n terpenuhi
} else {
// kode bila semua kondisi tidak terpenuhi
}
if Bersarang
Kita dapat mendeklarasikan statemen if di dalam statemen if lainnya untuk pengecekan bersarang. Statemen if pada dasarnya sama seperti kode lainnya, maka kita dapat menyimpan statemen if bersarang dimanapun di dalam blok kode if induknya.if(kondisi a) {
if(kondisi b) {
// jalankan kode
}
}
Switch
Statemenswitch
digunakan untuk menjalankan satu diantara banyak blok kode berdasarkan kecocokan nilai yang dievaluasi.switch(variabel){
case a:
// blok kode A
break;
case b:
// blok kode B
break;
...
default:
// blok kode default
}
Pada statemen switch, nilai variabel akan dievaluasi kecocokannya
untuk setiap case. Bila ditemukan kecocokan pada salah satu case, maka
blok kode pada case tersebut akan dijalankan. Umumnya blok kode pada
setiap case diakhiri dengan perintah break;
agar program langsung keluar dari blok statemen switch dan tidak perlu lagi mengecek sisa case di bawahnya.Apabila tidak ada case yang cocok dengan nilai variabel, maka blok kode pada bagian
default
yang akan dijalankan.
Switch (2)
Kita sudah paham bahwaswitch
akan menjalankan blok kode yang casenya cocok dengan nilai variabel
yang dievaluasi. Lalu bagaimana bila kita ingin menjalankan blok kode
yang sama untuk beberapa case berbeda? Ada dua solusi. Pertama dengan
memasang blok kode yang sama untuk case-case berbeda yang ingin
outputnya sama.switch($binatang){
case "ayam":
echo "jumlah kaki 2";
break;
case "bebek":
echo "jumlah kaki 2";
break;
case "burung":
echo "jumlah kaki 2";
break;
case "sapi":
echo "jumlah kaki 4";
break;
case "kambing":
echo "jumlah kaki 4";
break;
default:
echo "jenis binatang tidak terdaftar.";
}
Akan tetapi switch
memperbolehkan cara yang lebih sederhana agar kita tidak perlu mengulang baris kode yang sama.switch($binatang){
case "ayam":
case "bebek":
case "burung":
echo "jumlah kaki 2";
break;
case "sapi":
case "kambing":
echo "jumlah kaki 4";
break;
default:
echo "jenis binatang tidak terdaftar.";
}
Pada kode di atas kita melihat ada case yang tidak memiliki blok
kode. Case tanpa blok kode berarti dia mengikuti blok kode yang dimiliki
case setelahnya. Contohnya, bila variabel $binatang
bernilai "sapi"
maka dia akan menampilkan output jumlah kaki 4
karena case "sapi"
tidak memiliki blok kode, sehingga blok kodenya mengikuti blok kode yang dimiliki case setelahnya yaitu case "kambing"
.
Pengertian Array
Pada pembahasan tipe data terdahulu sudah dijelaskan sekilas tentang Array. Array (dikenal juga dengan istilah larik) adalah tipe data khusus yang dapat menyimpan lebih dari satu nilai dalam satu variabel. Misalnya kita punya beberapa nama hewan yang ingin diproses di dalam program, maka kita dapat menyimpan ke dalam variabel seperti ini:$hewan1 = "ayam";
$hewan2 = "sapi";
$hewan3 = "kuda";
Permasalahannya sekarang adalah bagaimana bila kita hendak melakukan
pencarian nama hewan diantara daftar nama tersebut? Selain itu bagaimana
bila kita ingin mencetak semua daftar nama yang boleh jadi tidak hanya
ada 3-4 buah, tapi ratusan? Disinilah peran Array. Bila data nama hewan
di atas disimpan dalam bentuk array, maka sintaks penulisannya seperti
ini:$hewan = array("ayam", "sapi", "kuda");
Apabila kita hendak memanggil nilai dari array tersebut, kita dapat memanggil dengan menggunakan nomor indeksnya.echo $hewan[0]; // mencetak nilai "ayam"
echo $hewan[1]; // mencetak nilai "sapi"
echo $hewan[2]; // mencetak nilai "kuda"
Indeks adalah nomor posisi nilai di dalam array. Nomor indeks dimulai dari 0.
Array Berindeks
Umumnya indeks dari array bertipe integer, dimulai dari 0 hingga n-1 dengan n adalah jumlah elemen di dalam array. Kode berikut:$sayuran = array('kangkung', 'bayam', 'kol');
berarti nilai array indeks ke-0 berisi 'kangkung'
, indeks ke-1 berisi 'bayam'
dan seterusnya. Kita dapat memanggil nilai di dalam array dengan
memanggil nama variabel diikuti nomor indeks yang ingin diambil. Nomor
indeks ditulis di dalam kurung siku.$sayur = $sayuran[0];
Pada kode di atas variabel $sayur
akan diisi oleh nilai dari elemen array $sayuran
indeks ke-0, yaitu: 'kangkung'
.Kita juga dapat mengisi nilai dari suatu elemen array dengan cara yang sama:
$sayuran[0] = 'selada';
$sayuran[3] = 'brokoli';
Pada kode di atas kita mengisi array indeks ke-0 menjadi 'selada'
dan indeks ke-3 dengan'brokoli'
.Array Asosiatif
Selain menggunakan angka sebagai nomor indeks, kita juga dapat mengacu indeks pada array menggunakan nama indeks. Perhatikan kode berikut:$profil[0] = 'Toni Haryanto';
$profil[1] = 'Bandung';
Daripada menggunakan nomor indeks seperti di atas, kita dapat menggunakan nama indeks agar lebih informatif.$profil['nama'] = 'Toni Haryanto';
$profil['domisili'] = 'Bandung';
Kode di atas juga dapat ditulis seperti ini:$profil = array('nama' => 'Toni Haryanto', 'domisili' => 'Bandung');
Atau agar lebih mudah dilihat, ditulis menggunakan indentasi:$profil = array(
'nama' => 'Toni Haryanto',
'domisili' => 'Bandung'
);
Perhatikan penulisan indeks array. Antara nama indeks dan nilai terdapat operator =>
yang berfungsi sebagai penghubung antara indeks dan nilainya.Tambahan: nama dan nomor indeks array biasa disebut dengan key dan nilai array biasa disebut dengan value.
Array Multidimensi
Kita dapat mengisi elemen array dengan nilai bertipe array lagi. Ini dikenal dengan array bersarang atau array multidimensi. Kedalaman array bersarang pada dasarnya tidak terbatas.$herbivora = array('kambing', 'sapi');
$karnivora = array('harimau', 'serigala');
$omnivora = array('ayam', 'monyet');
$binatang = array($herbivora, $karnivora, $omnivora);
Pada contoh di atas, kita memiliki tiga buah variabel berisi array, yakni $herbivora
, $karnivora
dan $omnivora
. Kemudian ketiga variabel tersebut kita simpan di dalam satu variabel array $binatang
. Dengan demikian variabel $binatang
adalah variabel dengan nilai bertipe array bersarang (berdimensi dua).Menghitung Jumlah Isi Array
Adakalanya kita perlu mengetahui ada berapa banyak elemen yang terdapat di dalam suatu variabel array. Untuk itu kita dapat menggunakan fungsicount()
.$binatang = array($herbivora, $karnivora, $omnivora);
echo count($binatang);
Contoh kode di atas akan mencetak angka 3, karena variabel $binatang
memiliki 3 buah nilai di dalamnya.Bila kita ingin menghitung banyaknya elemen array pada variabel
$binatang
dan juga banyak elemen array yang bersarang di dalamnya (dengan kata
lain menghitung semua elemen array pada array multidimensi), kita dapat
menggunakan fungsi count()
dengan mengisi parameter kedua dengan konstanta COUNT_RECURSIVE atau angka 1.
Perulangan dengan while
Statemen perulanganwhile
akan menjalankan blok kode berulang-ulang selama kondisi masih bernilai true
.while (cek kondisi) {
// kode yang akan dijalankan berulang
}
Sebagai contoh kode berikut:$x = 1;
while($x <= 5) {
echo $x . "<br>";
$x++;
}
Pada kode di atas, program akan mencetak nomor 1 sampai dengan 5. Statemen while
akan mengecek kondisi, yang apabila nilainya true, dia akan menjalankan blok kode di dalamnya. Statemen while
akan terus dijalankan sampai kondisi pada while
bernilai false. Sehingga kita harus menyiapkan skenario agar kondisi
bernilai false. Pada kode di atas kita menambah nilai variabel $x
sebanyak 1 setiap kali blok kode pada while
dijalankan, agar sampai pada kondisi nilai $x
lebih dari 5 sehingga pengecekan kondisi bernilai false.
Perulangan dengan do..while
Statemendo..while
mirip seperti statemen while
, yakni menjalankan blok kode berulang-ulang selama kondisi yang dicek bernilai true
.do {
// kode yang akan dijalankan berulang
} while (cek kondisi);
Perbedaan statemen do..while
dibanding while
adalah pada do..while
blok kode dijalankan terlebih dahulu baru kemudian dilakukan pengecekan kondisi. Bila kondisi bernilai true
maka blok kode akan dijalankan kembali. Dari sini dapat kita lihat bahwa pada statemen
do..while
, blok kode akan dijalankan paling tidak satu kali meskipun kondisi bernilai false. Berbeda dengan statemen while
yang mana pengecekan kondisi dilakukan di awal, yang bila kondisi bernilai false, maka blok kode tidak akan pernah dijalankan.Perulangan dengan for
Pada statemenwhile
dan do..while
,
kondisi yang dicek tidak mesti berupa angka yang diiterasi, tapi bisa
juga pengecekan kondisi lain yang kita tak perlu ketahui berapa kali
harus dijalankan. Sedangkan statemen perulangan for
lebih khusus digunakan apabila kita hendak mengulang eksekusi blok kode sebanyak angka yang kita tentukan.for (inisiasi counter; cek kondisi; naikkan counter) {
// kode yang akan dijalankan berulang
}
- Parameter pertama adalah inisial variabel yang akan dijadikan penghitung.
- Parameter kedua adalah pengecekan kondisi variabel. Bila kondisi bernilai true, blok kode akan dijalankan.
- Parameter ketiga untuk menaikkan/menurunkan nilai variabel setiap kali blok kode selesai dijalankan.
- Setiap parameter dipisahkan dengan tanda titik koma.
for($x = 0; $x < 5; $x++){
echo $x . "<br>";
}
Statemen for
membuat proses perulangan dengan jumlah tertentu ditulis dalam bentuk kode yang lebih ringkas.Perulangan dengan foreach
Perulangan dengan statemenforeach
hanya berlaku pada variabel array, digunakan untuk mengulang membaca setiap elemen array.foreach ($array as $value) {
// kode yang akan dijalankan berulang
}
Untuk setiap iterasi, nilai dari setiap elemen dapat diambil melalui variabel $value
. Pointer array akan menyusuri satu per satu elemen array hingga sampai pada elemen terakhir.$warna = array("merah", "jingga", "kuning");
foreach ($warna as $value) {
echo "$value <br>";
}
Pada contoh kode di atas, kode foreach
akan menyusuri satu per satu elemen array $warna
, kemudian nilai setiap elemen dapat diakses melalui variabel $value
. Pada blok kode variabel $value
ini dicetak satu per satu dari awal hingga akhir elemen.mengambil key dan value
Kita dapat memanggil tidak hanya nilai elemen array, tapi juga indeks arraynya, dengan mendefinisikan variabel$key
diikuti tanda panah =>
sebelum variabel $value
.$warna = array("merah", "jingga", "kuning");
foreach ($warna as $key => $value) {
echo "Indeks ke-$key berwarna $value <br>";
}
Kode di atas akan mencetak tidak hanya nilai dari nama-nama warna
yang ada dalam array, tapi juga nomor indeks arraynya. Output kode di
atas akan tampak seperti ini:Indeks ke-0 berwarna merah
Indeks ke-1 berwarna jingga
Indeks ke-2 berwarna kuning
foreach Bersarang
Bagaimana halnya bila kita hendak menampilkan setiap elemen array yang ada di dalam array (array bersarang/multidimensi)? Gunakanlahforeach
bersarang.$herbivora = array('kambing', 'sapi', 'kuda');
$karnivora = array('harimau', 'serigala', 'anjing');
$omnivora = array('ayam', 'monyet', 'beruang');
$binatang = array($herbivora, $karnivora, $omnivora);
Kita dapat mencetak semua isi elemen array menggunakan fungsi print_r()
atau var_dump()
.
Tapi seringkali kita harus membungkus value array di dalam tag html.
Untuk menampilkan semua nilai elemen pada array multidimensi di atas,
kita dapat menggunakan foreach
seperti berikut:foreach($binatang as $jenis){
foreach($jenis as $nama){
echo $nama . "<br>";
}
}
foreach
pertama mengiterasi variabel array $binatang
dan setiap elemennya dapat dipanggil pada variabel $jenis
. Karena nilai variabel $jenis
juga bertipe array, maka kita panggil variabel tersebut pada foreach
kedua. Elemen dari variabel array $jenis
dapat diakses pada variabel $nama
.
Memahami Fungsi
Seringkali kita harus melakukan serangkaian operasi yang sama di banyak tempat, seperti menghitung rumus, mencetak suatu template, dan lain sebagainya. Akan sangat merepotkan bila kita harus menulis kode yang sama di banyak tempat. Bayangkan bila kita harus memperbaharui operasi tersebut, maka kita harus mengubah di banyak tempat. Permasalahan ini dapat diselesaikan salah satunya menggunakan fungsi (function).Fungsi adalah blok kode yang dapat dipanggil berulang pada program. Sejak lesson awal sebenarnya Kamu sudah menggunakan fungsi, diantaranya adalah
print_r()
, var_dump()
, array()
define()
, isset()
, strtoupper()
, dan count()
. Sebagai contoh fungsi
count()
digunakan untuk menghitung
banyaknya elemen di dalam array. Kita sebenarnya dapat menulis sendiri
kode untuk menghitung jumlah elemen array menggunakan foreach
, tapi dengan adanya fungsi count()
kita dapat melakukan hal tersebut lebih cepat dan mudah.
Membuat Fungsi
PHP sudah menyediakan lebih dari 1000 fungsi untuk operasi umum yang dapat kita gunakan. Daftar fungsi yang dimiliki PHP beserta pengelompokannya dapat diakses pada url http://php.net/manual/en/funcref.php.Selain fungsi yang sudah disediakan, kita juga dapat membuat fungsi sendiri untuk kebutuhan yang lebih spesifik pada aplikasi kita. Berikut adalah sintaks untuk mendeklarasikan fungsi:
function namafungsi() {
// blok kode fungsi
}
Membuat fungsi diawali dengan kata kunci function
diikuti nama fungsinya dan kurung buka dan kurung tutup. Kemudian blok
kode fungsi ditulis di dalam kurung kurawal. Nama fungsi bersifat case sensitive.function cetakPesan() {
echo "Halo Coder!";
}
Pada contoh di atas kita membuat fungsi dengan nama cetakPesan()
.
Fungsi tersebut memiliki satu buah baris kode di dalamnya, yakni
mencetak teks bertuliskan "Halo Coder!". Blok kode di dalam fungsi tidak
akan dijalankan sampai fungsi tersebut dipanggil. Cara memanggil fungsi
adalah dengan menuliskan nama fungsinya diikuti oleh kurung buka dan
kurung tutup.cetakPesan();
Skup Variabel pada Fungsi
Di dalam PHP dikenal adanya skup variabel local dan global. Ketika kita membuat sebuah variabel di dalam fungsi, maka skup variabel tersebut adalah local yang berarti hanya dapat diakses di dalam fungsi tersebut.function cetakPesan(){
$pesan = "Halo Coder!";
echo $pesan;
}
echo $pesan;
Pada contoh kode di atas, variabel $pesan
terdapat di dalam fungsi dan hanya dapat digunakan di dalam fungsi. Kode echo $pesan;
yang ada di luar fungsi akan menghasilkan error pada program.Begitu pula sebaliknya, variabel yang ada di luar fungsi pada dasarnya tidak dapat diakses dari dalam fungsi.
$pesan = "Halo Coder!";
function cetakPesan(){
echo $pesan;
}
Pada contoh kode di atas baris kode echo $pesan;
yang ada di dalam fungsi tidak akan menghasilkan apapun (riilnya akan menampilkan pesan error) karena variabel $pesan
di dalam fungsi adalah variabel baru yang skupnya lokal dan bukan variabel yang ada di luar fungsi.
Keyword global
Meski demikian, dalam beberapa kasus mungkin kita sangat harus
mengakses variabel skup global dari dalam fungsi. Hal ini dapat
dilakukan dengan menggunakan kata kunci global
.$message = "Toni";
function cetakPesan(){
global $message;
echo "Halo, " . $message . "!";
}
Pada kode di atas, blok kode pada fungsi cetakPesan()
menggunakan variabel $message
yang berasal dari luar fungsi dengan terlebih dahulu mendeklarasikan global $message;
sehingga variabel tersebut dapat digunakan dan dipengaruhi dari dalam fungsi.
Argumen Fungsi
Dalam membangun aplikasi riil penggunaan skup global di dalam fungsi tidak efisien. Ada cara yang lebih baik untuk memproses suatu data di dalam fungsi, yakni dengan melewatkan variabel melalui argumen fungsi.Argumen fungsi adalah variabel yang ada di dalam kurung setelah nama fungsi. Argumen menjadi pintu masuk data yang akan digunakan di dalam fungsi. Kita dapat mengisi argumen fungsi dengan nilai input langsung, nilai default, atau nilai referensi.
function selamatDatang($nama) {
echo "Selamat Datang, $nama! <br />";
}
selamatDatang("Coder");
$username = "toharyan";
selamatDatang($username);
Pada contoh di atas, kita membuat fungsi selamatDatang()
yang memiliki satu buah argumen $nama
. Pada baris ke-5 fungsi ini dipanggil dan argumen $nama
diisi dengan nilai string "Coder". Pada pemanggilan fungsi di baris ke-7 argumen diisi dengan variabel $username
yang bernilai string "toharyan".Kita dapat membuat argumen fungsi lebih dari satu, dengan dipisahkan oleh tanda koma. Saat pemanggilan fungsi, argumen fungsi diisi sesuai urutan penulisan argumen (dari kiri ke kanan) pada deklarasi fungsi.
Argumen Default Fungsi
Apa yang terjadi bila suatu fungsi memiliki misalnya dua buah argumen dan kita hanya mengisi salahsatunya atau tidak mengisi kedua argumen tersebut saat pemanggilan? Program tentunya akan memunculkan pesan peringatan bahwa fungsi tersebut memerlukan input pada argumennya.Namun adakalanya suatu fungsi membolehkan beberapa argumen tidak wajib diisi (opsional), seperti contoh fungsi
count()
yang sudah kita pelajari terdahulu. Hal yang sama juga dapat kita
lakukan pada fungsi yang kita buat sendiri, yakni dengan mendefinisikan
nilai bawaan pada argumen.function cetakPesan($nama, $bahasa = "id") {
$pesan = "Selamat datang, $nama.";
if($bahasa == "en")
$pesan = "Welcome, $nama.";
echo $pesan;
}
Sebagai contoh, fungsi cetakPesan()
di atas memiliki dua buah argumen. Argumen $nama
wajib diisi saat pemanggilan fungsi karena tidak diset nilai bawaannya, sedangkan argumen $bahasa
tidak wajib diisi karena sudah memiliki nilai default.
Argumen Referensi pada Fungsi
Ketika kita melewatkan variabel ke dalam argumen sebuah fungsi, nilai yang ada di dalam variabel tersebut tidak akan berubah.function kuadrat($angka){
$angka *= $angka;
echo $angka;
}
$x = 5;
echo $x;
kuadrat($x);
echo $x;
Pada kode di atas, nilai awal $x
adalah 5. Saat fungsi kuadrat($x)
dipanggil, fungsi tersebut akan mengkuadratkan nilai variabel argumen dan mencetaknya. Adapun variabel $x
setelah proses pemanggilan fungsi kuadrat()
tetap bernilai 5.Dalam beberapa kasus kita perlu menerima perubahan pada variabel saat variabel tersebut dilewatkan ke dalam sebuah fungsi. Hal ini dikenal dengan istilah pass by reference. Artinya kita tidak melewatkan nilai ke dalam argumen, tapi melewatkan referensi variabel. Dengan demikian ketika nilai argumen tersebut berubah selama proses di dalam fungsi, variabel referensinya pun ikut berubah.
Cara membuat argumen referensi adalah dengan menambahkan karakter
&
sebelum variabel argumen pada deklarasi fungsi.function kuadrat(&$angka){
$angka *= $angka;
}
$x = 5;
echo $x;
kuadrat($x);
echo $x;
Pada contoh kode di atas, kita menulis argumen &$angka
dengan menyertakan karakter &
sebelum variabel argumen. Variabel $x
awalnya bernilai 5. Saat fungsi kuadrat($x)
dipanggil, nilai variabel $x
pun ikut dikuadratkan. Sehingga setelah pemanggilan fungsi, nilai variabel $x
akan bernilai 25.
Mengembalikan Nilai Fungsi
Sejauh ini kita sudah belajar membuat fungsi untuk mengerjakan sejumlah proses yang dapat dipanggil secara berulang. Tapi di banyak kesempatan kita tidak hanya perlu menjalankan sejumlah kode dan mencetak output, tapi juga menerima hasil dari proses yang dikerjakan. Seperti contoh fungsicount()
yang bila dipanggil dia mengembalikan nilai jumlah elemen suatu variabel.$binatang = array('kuda', 'kucing', 'ayam');
$jumlah = count($binatang);
Pada contoh kode di atas, variabel $jumlah
akan bernilai 3 karena dia menerima nilai dari fungsicount()
.Pada deklarasi fungsi sendiri, kita dapat mengembalikan nilai hasil pemanggilan suatu fungsi dengan menggunakan kata kunci
return
.function luasSegitiga($alas, $tinggi){
$luas = $alas * $tinggi / 2;
return $luas;
}
//mencetak nilai 10
echo luasSegitiga(5, 4);
// variabel $hasil bernilai 15
$hasil = luasSegitiga(5, 6);
Fungsi luasSegitiga()
di atas menerima 2 argumen $alas
dan $tinggi
dan mengembalikan nilai luas segitiga berdasarkan nilai argumen yang dilewatkan.
Menghitung Karakter dan Kata pada String
String dan manipulasi string akan cukup sering digunakan dalam proses pembuatan aplikasi PHP.Kita sudah belajar bagaimana menghitung banyaknya elemen array menggunakan fungsi
count()
. Adapun untuk menghitung berapa banyak karakter pada sebuah string, kita gunakan fungsi strlen()
. Fungsi ini menerima satu input argumen, yaitu string yang akan dihitung karakternya.$message = "Hello world!";
echo strlen($message);
Pada kode di atas, fungsi strlen()
akan mengembalikan nilai jumlah karaker di dalam string $message
. Lebih lengkap tentang fungsi stlen()
dapat dilihat pada halaman manual http://php.net/manual/en/function.strlen.php.Adapun untuk menghitung jumlah kata pada string, kita dapat menggunakan fungsi
str_word_count()
.$message = "Hello world!";
echo str_word_count($message);
Lebih lengkap tentang fungsi _count()
dapat dilihat pada halaman manual http://php.net/manual/en/function.str-word-count.php
Transformasi Teks String
PHP juga sudah menyediakan beragam fungsi untuk memanipulasi transformasi teks: mengubah teks menjadi huruf kapital semua, huruf kecil semua, kapital di awal, kapital di awal setiap kata dan sebagainya.$teks = "Budi sekolah di SD Kertajaya";
echo strtoupper($teks) . "<br>";
echo strtolower($teks) . "<br>";
echo ucfirst($teks) . "<br>";
echo ucwords($teks) . "<br>";
Fungsi strtoupper()
digunakan untuk membuat semua karakter dalam string menjadi huruf besar/kapital. Fungsi strtolower()
digunakan untuk membuat semua karakter dalam string menjadi huruf kecil. Fungsi ucfirst()
digunakan untuk membuat huruf pertama dari string menjadi huruf besar/kapital. Fungsi ucwords()
digunakan untuk membuat huruf pertama dari setiap kata dalam string menjadi huruf besar/kapital.
Mencari dan Mengganti Teks dalam String
Pada lesson sebelumnya pernah disinggung sekilas tentang fungsistr_replace()
. Yup, ini adalah fungsi untuk mengganti suatu teks di dalam string dengan teks lain.str_replace($search, $replace, $subject, [$count]);
Argumen $search
diisi oleh string yang akan dicari untuk diganti. Argumen $replace
diisi oleh string yang menjadi pengganti. $subject
diisi oleh string yang akan dicari dan diganti isinya. $count
ini argumen opsional yang dapat kita isi oleh variabel yang akan berisi angka jumlah temuan string yang diganti.$pesan = "saya suka baso sapi, sate kambing dan iga bakar";
$hasil = str_replace("kambing", "ayam", $pesan);
Pada contoh kode di atas, variabel $hasil
akan berisi string "saya suka baso sapi, sate ayam dan iga bakar", dimana kata kambing diganti menjadi ayam.Kita juga dapat mencari lebih dari satu nilai. Teks penggantinya pun dapat dibuat per teks yang dicari atau disamakan.
$pesan = "saya suka baso sapi, sate kambing dan iga bakar";
$cari = array("sapi", "kambing");
$pengganti = "ayam";
$hasil = str_replace($cari, $pengganti, $pesan);
$pengganti = array("rudal", "maranggi");
$hasil2 = str_replace($cari, $pengganti, $pesan);
Pada variabel $hasil
, teks 'sapi' dan 'kambing' akan diganti jadi 'ayam'. Sedangkan pada variabel $hasil2
teks 'sapi' akan menjadi 'rudal' dan teks 'kambing' menjadi 'maranggi'.
Memecah String ke Bentuk Array dan Sebaliknya
Adakalanya kita harus mengurai suatu string dan mengolahnya, seperti contohnya mengambil segmen tertentu dari sebuah url. Untuk hal ini kita dapat menggunakan fungsiexplode()
.$url = "codepolitan.com/interactive-coding/php/echo";
$segmen = explode("/", $url);
Pada kode di atas kita memecah string $url
ke dalam bentuk array dengan menggunakan karakter "/" sebagai pembatasnya.Kita juga dapat melakukan hal sebaliknya, yakni menggabungkan nilai-nilai di dalam array menjadi satu kesatuan string. Untuk ini kita dapat menggunakan fungsi
implode()
.$tags = array('php', 'belajar php', 'tutorial php');
$tag_str = implode(", ", $tags);
Pada kode di atas kita menggabungkan semua nilai elemen pada $tags
dengan menggunakan karakter ", " (koma dan spasi) sebagai penghubung antar nilai.
Menghapus Karakter di Depan dan Belakang String
Dalam beberapa kasus, kita harus membersihkan suatu string dari karakter tambahan yang tidak diperlukan di awal atau akhir string. PHP sudah menyediakan fungsi untuk hal tersebut yaknitrim()
.$nama = " Toni Haryanto ";
echo trim($nama);
Argumen pertama fungsi trim()
diisi dengan string yang hendak dibersihkan. Fungsi ini juga memiliki argumen kedua $character_mask
, yakni karakter yang hendak dipotong. Argumen kedua memiliki nilai default " \t\n\r\0\x0B" yakni semua jenis whitespace.Selain fungsi
trim()
, terdapat juga fungsi rtrim()
untuk membersihkan hanya bagian akhir string, dan ltrim()
untuk membersihkan bagian awal string.
Reference and Image Source :
codepolitan
Belajar dasar-dasar bahasa pemrograman PHP
This comment has been removed by the author.
ReplyDelete