Tutorial Function Pada PHP

Built-In Math Functions

Materi ini memiliki 1 buah lampiran. Namun Anda tidak dapat mengakses lampiran karena belum terdaftar di kursus ini. Klik disini untuk mendaftar.

Kalau pada video sebelumnya kita sudah pernah membahas mengenai Built-In String Functions, pada kesempatan ini kita membahas mengenai Built-In Math Functions. PHP telah menyediakan banyak function yang bisa langsung kita gunakan, dan kali ini kita akan bahas kelompok function yang berhubungan dengan matematika. Untuk referensi lebih lanjut, kita bisa buka halaman PHP.Net pada link berikut ini:

https://www.php.net/manual/en/ref.math.php

Ada banyak function yang bisa kita temukan disini. Seperti function yang berhubungan dengan pembulatan, yaitu floor untuk membulatkan ke bawah, round untuk pembulatan tengah, dan ceil untuk membulatkan ke atas. Kemudian function yang berhubungan dengan nilai, seperti abs yang berfungsi untuk memberikan nilai positif. Max untuk mencari nilai paling tinggi dan min untuk mencari nilai paling rendah.

Kemudian ada function yang berhubungan dengan sistem bilangan. Sistem yang secara umum kita gunakan adalah sistem bilangan desimal, atau dec. Diluar dari itu, masih ada sistem bilangan binary atau bin, hexadesimal atau hex, dan oktal atau oct. Perhatikan nama function disini adalah untuk mengubah sistem bilangan dari yang satu menuju ke yang lainnya. Kalau kita hendak mengubah desimal menjadi binary, maka kita gunakan function decbin. Sedangkan kalau mau mengubah binary menjadi desimal, kita gunakan function bindec. Begitu juga untuk sistem bilangan lainnya.

Dan yang terakhir adalah fungsi-fungsi yang berhubungan dengan operasi matematikan. Seperti function pow untuk menghitung nilai pangkat. Kemudian ada fungsi untuk menghitung nilai sin, cos dan tan. Ada fungsi untuk mengubah nilai derajat menjadi radian, dan sebaliknya. Kemudian ada juga fungsi untuk menghitung nilai log dan eksponensial.

Pada video ini kita akan mencoba fungsi-fungsi tersebut pada kode kita. Namun yang lebih pentingnya lagi adalah kita mencoba fungsi sambil membaca dokumentasinya dari php.net. Jadi diharapkan teman-teman nantinya bisa terbiasa untuk membaca dokumentasi dan mencari sendiri function yang dibutuhkan, karena kedepannya kemampuan untuk membaca dokumentasi inilah yang sangat dibutuhkan untuk menjadi seorang programmer.

Kita mulai praktek ya. Kita mulai dari function yang bertujuan untuk membulatkan suatu nilai. Pertama function floor dulu ya. Kita lihat dari dokumentasinya, kita klik ke nama function-nya yaitu floor. Kemudian kita bisa melihat keterangan yang lebih rinci mengenai function floor. Dimulai dari paling atas terdapat deskripsi singkat dari function floor, yaitu untuk membulatkan pecahan ke bawah.

Kemudian kita bisa melihat deklarasi dari function floor. Disini kita bisa melihat membutuhkan parameter berapa banyak. Kita juga bisa melihat tipe data apa yang diharapkan sebagai parameter. Lalu kita bisa mendapatkan hasil dalam bentuk apa. Kebetulan function ini bisa digunakan untuk tipe data int atau float. Dan function ini mengembalikan tipe data float.

Kita coba ya. Kita panggil function floor dengan argument angka 1. Kita jalankan. Tidak terjadi apa-apa ya. Karena kita tidak melakukan apa pun terhadap nilai yang dikembalikan oleh function. Kalau misalkan kita hendak tampilkan ke layar, maka kita bisa menggunakan function echo atau var_dump. Disini kita gunakan var_dump saja ya teman-teman, agar lebih jelas ada tipe datanya.

Function bisa berjalan tanpa error. Dan mengembalikan angka 1 dalam bentuk float. Jadi walaupun kita mengirimkan argument dalam bentuk int, dan walaupun hasilnya adalah bilangan bulat, namun tipe data yang dikembalikan tetap float.

Kita coba beberapa kali ya. Jadi kita copy paste kodenya namun kita ganti argumentnya menjadi 1.1, 1.5 dan 1.9. Perhatikan bahwa semuanya menghasilkan nilai 1. Berapapun nilai pecahan dibelakang koma, mau nilai pecahannya besar maupun kecil, semuanya dibulatkan ke bawah menjadi angka 1.

Namun yang menariknya, kalau kita coba masukkan argument dengan nilai -1.1. Ternyata hasilnya adalah -2. Bukan -1 ya teman-teman ya. Kalau kita kembali ke dokumentasinya, disini dijelaskan bahwa nilai dibulatkan ke bilangan bulat terendah berikutnya. Berhubung nilai -2 lebih rendah dari -1, maka kita mendapatkan hasil -2.

Kita lanjutkan ke function berikutnya yaitu ceil. Kita lihat di dokumentasinya. Ceil ini mirip dengan floor, namun pembulatannya ke nilai integer yang lebih tinggi.

Kita copy paste dari contoh floor. Kode lama kita ubah jadi komentar. Sedangkan pada kode baru semua floor kita ganti menjadi ceil.

Kita lihat hasilnya. Untuk bilangan bulat 1, nilai hasilnya tetap 1. Sedangkan semua pecahan dibulatkan ke atas sehingga hasilnya bilangan 2. Dan khusus untuk bilangan negatif, hasilnya adalah -1 karena nilai -1 lebih besar dari -2.

Kita lanjutkan ke function berikutnya yaitu round. Function round ini sedikit lebih rumit karena ada 3 buah parameter. Parameter kedua $precision bersifat opsional, menunjukkan nilai pembulatannya dimulai dari berada digit di belakang koma. Sedangkan parameter ketiga $mode menunjukkan apa yang mesti dilakukan pada saat mendapatkan pecahan 0,5. Secara default nilai 0,5 akan dibulatkan ke atas.

Kita coba tes. Kita copy paste lagi function ceil dan kita komentari yang lamanya. Sedangkan kode baru kita ganti menjadi round. Perhatikan bahwa nilai 1.1 menghasilkan nilai 1. Sedangkan 1.5 dan 1.9 dibulatkan ke atas menjadi 2. Sedangkan nilai -1.1 menghasilkan nilai -1. Jadi function round ini membulatkan nilai ke bilangan bulat terdekat. Khusus untuk pecahan 0,5 secara default dibulatkan ke atas.

Kita tes parameter keduanya ya, yang berfungsi untuk mengatur berapa digit pembulatan dibelakang koma. Misalkan kita panggil round dengan argument 123.456, kemudian argument kedua nilainya 2. Artinya pembulatan 2 digit dibelakang koma. Maka kita mendapatkan hasil 123.46.

Kita juga bisa memberikan nilai negatif pada argument kedua, untuk melakukan pembulatan di depan koma. Misalkan kita copy paste ya. Namun argument kedua kita ganti menjadi -1. Maka terjadi pembulatan untuk kelipatan 10, atau satu digit di depan koma.

Pada parameter terakhir, kita bisa mengatur apa yang akan terjadi bila nilai pecahan berada tepat di tengah, yaitu 0.5. Secara default, yang terjadi adalah pembulatan ke atas, atau PHP_ROUND_HALF_UP. Kita bisa ganti menjadi pembulatan ke bawah dengan mengisikan argument ketiga dengan nilai PHP_ROUND_HALF_DOWN. Kita coba ya.

vardump(round(0.5, 0, PHP_ROUND_HALF_DOWN));

Maka kita mendapatkan hasil 0, atau dibulatkan ke bawah. Kita juga bisa mengatur agar dibulatkan ke bilangan genap atau bilangan ganjil terdekat dengan menggunakan argument ketiga ini. Untuk informasi lebih jelasnya bisa dilihat dari dokumentasi php.net. Disini ada keterangan khusus mengenai argument ketiganya.

Kita lanjutkan ke function yang bertujuan untuk mencari nilai. Yang pertama adalah function abs, singkatan dari absolute. Kita lihat deskripsi function-nya ya. Fungsi ini bertujuan untuk mencari nilai absolute-nya, atau nilai bilangan positifnya. Apabila kita memasukkan parameter dengan tipe data integer, maka kita mendapatkan hasil integer juga. Namun bila kita memasukkan parameter dengan tipe data float, maka kita mendapatkan hasil float juga.

Kita langsung coba praktek saja. Kalau kita coba panggil function abs dengan argument 1, maka kita mendapatkan hasil 1. Berhubung argumentnya menggunakan tipe data int, maka hasilnya tipe data int juga. Kalau kita panggil dengan argument -1, maka kita mendapatkan nilai 1. Kalau kita coba menggunakan argument dengan tipe data float, misalkan -1.1, maka kita mendapatkan hasil float juga, dengan nilai 1.1. Function ini berguna apabila kita hendak melakukan perhitungan yang mengharuskan kita untuk menggunakan nilai yang positif.

Yang kedua adalah function max. Tujuannya adalah untuk mencari nilai paling tinggi. Function ini unik ya, karena kita boleh memasukkan argument sebanyak apa pun, tidak terbatas. Sebagai hasilnya, function mengembalikan satu nilai yang paling tinggi.

Kita coba praktek. Kita panggil function max, dengan argument 1, 9, 3, 6, 4. Kita mendapatkan hasil nilai yang paling tinggi yaitu 9.

Function max bisa digunakan untuk tipe data lainnya. Namun tidak disarankan untuk menggunakan tipe data yang berbeda sebagai argument, karena function akan memberikan hasil yang tidak bisa diprediksi. Jadi kalau kita hendak menggunakan argument dengan tipe data integer, ya, gunakan integer semua. Jangan sebagian integer, namun sebagian lagi string.

Satu lagi function yang sejenis dengan max, yaitu min. Tujuannya adalah untuk mencari nilai yang paling kecil. Cara menggunakannya mirip dengan max. Kita copy paste saja kodenya. Kalau di function min, kita mendapatkan hasil 1.

Kalau kita tambahkan argument -1, maka kita mendapatkan hasil -1 ya. Karena nilai negatif adalah yang paling kecil.

Kita lanjutkan ke function untuk mengubah sistem bilangan. Kita mesti tau dahulu bahwa PHP mendukung 4 sistem bilangan. Yang paling umum kita gunakan adalah sistem bilangan desimal, atau disingkat dengan nama dec. Jadi kalau disini kita lihat ada 3 function yang depannya dec, ini adalah 3 function yang bertujuan untuk mengubah nilai sistem bilangan desimal ke sistem bilangan lainnya. Sistem bilangan lain yang didukung oleh PHP adalah sistem bilangan berbasis 2, atau biner, disingkat dengan bin. Jadi function decbin ini bertujuan untuk mengubah desimal menjadi biner. Sistem bilangan lain adalah sistem bilangan berbasis 8 atau oktal, disingkat dengan oct. Dan yang terakhir adalah sistem bilangan berbasis 16 atau hexadecimal, disingkat dengan hex.

PHP juga sudah menyediakan function untuk mengubah sistem bilangan lainnya kembali ke desimal. Untuk nama functionnya, kita sebutkan dahulu sistem bilangan awal, diikuti dengan dec. Misalnya untuk mengubah biner menjadi desimal, nama function-nya adalah bindec.

Kita lihat dahulu function decbin. Berdasarkan keterangan dari dokumentasinya, decbin mengubah desimal menjadi biner. Function hanya menggunakan satu parameter dengan tipe data integer. Lalu function mengembalikan string yang merupakan nilai biner dari angka yang dikirimkan sebagai argument.

Kita coba praktek ya. Kita panggil decbin dengan nilai 200. Kita mendapatkan hasil berupa string ‘11001000’. String ini adalah nilai biner dari 200. Perhatikan bahwa kita mengirimkan argument dengan tipe data integer, sedangkan kita mendapatkan hasil dalam bentuk string.

Kita bisa membalikan nilai biner ini kembali menjadi desimal. Nama functionnya tinggal kita balik ya, menjadi bindec. Argumentnya mesti menggunakan tipe data string. Kita tuliskan kembali string-nya, ‘11001000’. Dan sebagai hasilnya kita mendapatkan nilai 200 dengan tipe data int.

Agar video ini tidak terlalu panjang, teman-teman bisa mencoba sendiri untuk sistem bilangan oktal dan hexadesimal ya.

Kita langsung lanjutkan materi ke function yang merupakan operasi matematika. Namun disini kita hanya bahas satu function saja, yaitu pow, singkatan dari power. Kalau dalam bahasa Indonesia, function ini digunakan untuk menghitung nilai pangkat.

Kita langsung praktek. Sebagai contoh kita hendak menghitung nilai 2 pangkat 10. Kita panggil function pow dengan argument 2, 10. Dan kita mendapatkan hasil 1024.

Sebagai alternatif dari function pow, kita bisa menggunakan operator **. Sebagai contoh, kita jalankan ekspresi 2 ** 10. Maka kita mendapatkan hasil yang sama, yaitu 1024.

Oke ya. Sebenarnya masih ada banyak function lain yang berhubungan dengan operasi matematika, seperti untuk menghitung sudut dengan sin, cos, tan. Untuk mengubah satuan sudut dari derajat menjadi radian. Ataupun untuk mengitung nilai eksponen dan log. Teman-teman bisa membaca dokumentasi cara penggunaannya dari php.net dan mencoba sendiri untuk menggunakannya. Yang paling penting disini adalah teman-teman bisa mengetahui function apa saja sih yang sudah disediakan oleh PHP, sehingga pada saat ada kebutuhan untuk menggunakan function tersebut, maka kita bisa langsung memanggil built-in functionnya, daripada kita harus bersusah payah membuat function sendiri. Selain itu, pada video ini kita juga mempelajari mengenai salah satu skill yang paling penting untuk menjadi seorang programmer, yaitu skill untuk membaca dokumentasi.

2 Jam 41 Menit

Dengan menggunakan fasilitas tanya jawab, maka Anda bisa bertanya dan akan dijawab langsung oleh instruktur kursus.

Anda belum terdaftar pada kursus ini sehingga tidak bisa mengajukan pertanyaan.