Saturday, November 17, 2018

Belajar Dasar-Dasar Bahasa Pemrograman PHP




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 dan FALSE.
  • 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 bernilai NULL.
Umumnya kita menampilkan nilai dari suatu variabel dengan menggunakan perintah 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:

ContohSerupa 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 nilai TRUE atau FALSE.

OpNamaContohHasil
== 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
++$xpre-increment tambah nilai $x sebanyak 1, kemudian kembalikan nilai $x
$x++post-increment kembalikan nilai $x, lalu tambah nilai $x sebanyak 1
--$xpre-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 diantaranya and, 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

Statemen switch 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 bahwa switch 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 fungsi count().

$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 perulangan while 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

Statemen do..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 statemen while 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 statemen foreach 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)? Gunakanlah foreach 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 fungsi count() 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 fungsi
count().

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 fungsi str_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 fungsi explode().

$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 yakni trim().

$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

1 comment:

Rekomendasi Aplikasi Penghasil Cuan :D Dirumah saja tetap Dapet Duit !!!

Hallo Bosskyuuh semua. Perkenalkan aku Patrick Ananta berasal dari Jawa Tengah. Aku sudah lama sekali dirumahkan dikarenakan covid19 sehingg...