Tutorial PHP Dasar
Tipe Data
Pada video ini kita akan membahas mengenai tipe data di bahasa pemograman PHP. Ada 8 tipe data di PHP. Yang pertama adalah null untuk menunjukan nilai kosong. Yang kedua adalah bool atau dikenal juga dengan nama boolean, untuk menunjukkan benar atau salah. Yang ketiga adalah int atau integer untuk menyimpan bilangan bulat. Yang keempat adalah float untuk menyimpan bilangan desimal atau pecahan. Yang kelima adalah tipe data string untuk menyimpan teks.
Khusus untuk tipe data keenam hingga kedelapan tidak kita bahas dahulu dalam video ini. Nantinya akan kita bahas lagi pada saat kita menggunakannya di video berikutnya. Tipe data keenam adalah resource, untuk menyimpan referensi ke program luar, seperti pada saat kita membuka file, atau membuka koneksi database. Sedangkan tipe data ketujuh dan kedelapan adalah tipe data yang lebih kompleks, bisa digunakan untuk menyimpan banyak nilai dalam satu variable, yaitu tipe data array dan object. Tentunya cara penggunaannya lebih rumit sehingga perlu dibahas dalam beberapa video khusus.
Kita bahas tipe data pertama yaitu null. Null berarti kosong. Dan tipe data ini hanya mengandung satu nilai yaitu null. Kata kunci null bersifat case insensitif. Artinya kita bisa mengetik null dalam huruf besar maupun kecil. Namun disarankan untuk mengetik null menggunakan huruf kecil semua, karena beberapa text editor tidak dapat mengenali tulisan null dalam huruf besar.
Kita langsung coba ya. Saya sudah membuatkan satu buah file tipedata.php untuk coba praktek video ini. Kita buat satu buah variable $coba dan kita isi dengan nilai null.
$coba = null;
Kemudian kita cetak nilai dari variable $coba. Sebelumnya kita sudah mengenal fungsi echo untuk mencetak ke layar. Namun kali ini kita menggunakan fungsi lain ya. Nama fungsinya adalah var_dump, di bagian tengahnya ada simbol underscore. Apa perbedaannya dengan echo? Kalau kita ingin mencetak suatu nilai ke layar untuk dilihat oleh user, maka kita menggunakan echo. Sedangkan kalau kita ingin mencetak nilai ke layar untuk dilihat oleh programmer atau kita sendiri, maka kita menggunakan var_dump, karena informasi yang ditampilkan lebih komplit.
var_dump($coba);
Kita simpan dan jalankan di terminal. Maka kita mendapat tulisan null.
Perhatikan bahwa tulisan null ini bersifat case insensitif. Kita bebas mengetik menggunakan huruf besar maupun kecil, php tetap mengenali kata kunci null.
Nah, bagi teman-teman yang pernah belajar bahasa pemograman lain, tentunya mengenal yang namanya deklarasi variable. Bahasa pemograman PHP tidak mengenal deklarasi variable. Jadi kalau misalkan kita membuat variable $coba tanpa diisi apa-apa, maka kode ini diabaikan oleh PHP. Kita mendapatkan error seolah-olah tidak ada variable $coba.
Oleh karena itu, di PHP setiap kali membuat variable, harus langsung kita isi dengan nilai. Apabila kita tidak tau nilainya, maka kita bisa mengisinya dengan nilai null sebagai variable kosong.
Kita masuk ke tipe data kedua yaitu Boolean atau di dalam PHP disebut Bool. Bool hanya mengandung 2 nilai, yaitu true untuk benar dan false untuk salah. Kata kunci true dan false bersifat case insensitif, jadi kita bebas menuliskannya menggunakan huruf besar maupun huruf kecil.
Kita coba praktek ya. Kita langsung var_dump saja misalnya nilai true. Di hasilnya kita bisa melihat bahwa tipe data adalah bool, sedangkan di dalam kurung adalah nilainya yaitu true. Sedangkan kalau kita coba var_dump nilai false, maka hasilnya adalah bool(false). Nantinya tipe data bool ini akan sangat terpakai pada kita memasuki materi percabangan dan perulangan.
Kita masuk ke tipe data ketiga, yaitu int atau Integer. Tipe data ini bisa digunakan untuk menyimpan bilangan bulat, baik positif maupun negatif. Nilai paling besar yang bisa disimpan bisa kita lihat pada konstanta PHP_INT_MAX. Apabila kita menyimpan nilai yang lebih besar dari PHP_INT_MAX, maka tipe data yang digunakan secara otomatis diubah menjadi float.
Ada 4 sistem bilangan yang bisa digunakan untuk tipe data integer. Yang pertama adalah yang biasa kita gunakan yaitu sistem bilangan desimal, basis 10. Selain desimal, kita bisa menggunakan sistem bilangan biner atau basis 2 dengan menambahkan simbol 0b di depan angka. Kita juga bisa menggunakan sistem bilangan oktal atau basis 8 dengan menambahkan simbol 0 atau 0o di depan angka. Jadi kita mesti berhati-hati pada saat menulis angka, jangan iseng menambahkan angka 0 di depan karena komputer akan menganggap angka tersebut sebagai sistem bilangan oktal. Dan yang terakhir, kita bisa menggunakan sistem bilangan hexadesimal atau basis 16 dengan menambahkan simbol 0x di depan angka.
Kita coba praktek ya. Kalau kita coba var_dump nilai yang berupa angka, maka hasilnya adalah tipe data int. Baik bilangan positif maupun bilangan negatif. Yang menariknya disini adalah kita bisa coba var_dump konstanta PHP_INT_MAX dan kita mendapatkan nilainya yang berupa integer. Nilai maksimal integer bergantung dari sistem komputer yang sedang digunakan, kebetulan saya menggunakan sistem 64 bit sehingga nilai maksimalnya besar. Apabila teman-teman menggunakan sistem 32 bit, maka nilai maksimum integer hanya di sekitar 2 milyar.
Nah, kalau misalnya nilai dari PHP_INT_MAX ini kita tambahkan dengan angka 1, maka terjadilah Integer Overflow. Artinya nilai sudah tidak bisa ditampung oleh tipe data integer, sehingga PHP secara otomatis mengubahnya menjadi float.
Selanjutnya, kalau misalkan kita masukkan nilai 2 milyar, maka tipe datanya masih integer ya, karena masih sanggup untuk ditampung. Namun kalau misalnya kode ini kita tutup dan beberapa hari kemudian kita kembali untuk membaca kode ini, kita akan kesulitan untuk membaca nilai 2 milyar ini. Karena kita mesti menghitung dahulu berapa jumlah nolnya.
Agar lebih mudah untuk dibaca, kita ingin menambahkan pemisah ribuan. Disini kita bisa menggunakan simbol underscore pada angka. Angka kita ubah menjadi 2_000_000_000 sehingga dengan sekali lihat kita bisa lebih cepat menangkap nilainya 2 milyar. Nantinya simbol underscore ini akan diabaikan oleh PHP sehingga tidak terjadi error. Sebenarnya simbol underscore bisa kita taruh dimana saja di dalam angka, namun biasanya lebih sering digunakan sebagai pemisah ribuan.
Secara default kita menggunakan sistem bilangan desimal untuk menyimpan angka integer. Namun kita masih bisa menggunakan 3 sistem bilangan lain. Kalau kita hendak menggunakan sistem bilangan biner, maka di depan angka kita tambahkan simbol 0b. Misalnya 0b10. Pada saat dicetak, nilai kembali menjadi sistem bilangan desimal. Nilai 10 pada biner adalah nilai 2 pada desimal.
Untuk menggunakan sistem bilangan oktal, kita bisa menambahkan 0o atau lebih singkat angka 0 saja di depan angka. Misalkan 010. Nilai 10 pada oktal adalah nilai 8 pada desimal.
Dan kita juga bisa menggunakan sistem bilangan hexadesimal dengan menambahkan 0x di depan angka. Misalkan 0x10. Nilai 10 pada hexadesimal adalah nilai 16 pada desimal.
Kita masuk ke tipe data keempat, yaitu float. Tipe data ini digunakan untuk menyimpan bilangan desimal atau pecahan, baik positif maupun negatif. Tipe data float hanya bisa menggunakan sistem bilangan desimal, tidak bisa kita gunakan untuk sistem bilangan lain seperti biner, oktal dan hexadesimal. Kita bisa menulis angka float dengan menggunakan simbol underscore seperti pada tipe data int. Dan kita juga bisa menulis angka float dengan menggunakan notasi eksponensial. Namun perlu diperhatikan disini bahwa tipe data float memiliki masalah ketepatan nilai di belakang koma.
Kita coba praktek ya. Misalkan kita hendak menulis angka 1,5. Yang perlu diingat disini bahwa PHP menggunakan bahasa Inggris. Nah cara penulisan angka pada bahasa Inggris, penggunaan tanda titik dan komanya adalah kebalikan dari bahasa Indonesia. Jadi kalau kita hendak menulis 1,5, maka tanda koma disini harus diganti menjadi tanda titik. Jadinya 1.5. Barulah kita mendapatkan hasil tipe data float dengan nilai 1.5. Ingat ya, di komputer kita harus menulisnya 1.5, kalau kita tetap menggunakan tanda koma, maka kita akan mendapatkan error.
Kita bisa menggunakan tipe data float untuk nilai negatif. Jadi kalau kita ganti menjadi -1.5 maka hasilnya masih tetap benar.
Tipe data float tidak bisa digunakan untuk sistem bilangan lain, misalnya hexadesimal. Kalau kita coba tambahkan tanda 0x di depan 1.5 maka terjadilah error.
Namun kita masih tetap bisa menggunakan simbol underscore seperti pada tipe data integer. Jadi kalau kita mau menulis 1 juta koma 5, maka kita bisa menulisnya menjadi 1_000_000.5.
Bagi yang sudah terbiasa dengan matematika, kita bisa menggunakan notasi eksponensial untuk menulis angka float. Misalnya kita hendak menulis satu setengah juta. Kita bisa menulisnya sebagai 1.5, ini artinya satu setengah ya. Lalu juta-nya kita tulis sebagai E6, alias 10 pangkat 6. Maka kita mendapatkan hasil satu setengah juta dalam bentuk float. Perhatikan bahwa walaupun hasilnya adalah bilangan bulat, namun berhubung kita menulisnya dalam notasi eksponensial, maka kita mendapatkan hasil tipe data float.
Dan hal terakhir yang harus diperhatikan adalah bahwa angka float memiliki keterbatasan untuk ketepatan nilai di belakang koma. Sebagai contoh, kita tulis hasil dari 0,1 ditambah dengan 0,2. Hasil seharusnya adalah tepat 0,3. Namun disini kita mendapatkan hasil yang tidak bulat 0,3. Hal ini harus diperhatikan nantinya kalau kita hendak membandingkan 2 buah nilai float.
Sekarang kita masuk ke tipe data kelima yaitu String. String adalah sekumpulan karakter yang membentuk suatu teks. Setiap karakter di PHP berukuran 1 byte, dan PHP belum mendukung Unicode.
Ada 4 cara untuk membuat string, yaitu dengan menggunakan tanda petik tunggal, tanda petik ganda, Heredoc dan Nowdoc. Agar lebih jelas, bisa langsung kita praktekkan.
Misalkan kita membuat variable $name1, yang langsung kita isi dengan string. Pertama kita coba gunakan tanda petik tunggal dahulu. Kita isi dengan kata Skysen. Kemudian kita var_dump variable $name1.
Sebagai hasilnya, kita mendapatkan tipe data String, diikuti oleh jumlah karakternya di dalam tanda kurung. String kita mengandung 6 karakter, nilainya adalah “Skysen”.
Kalau kita tambahkan spasi di bagian tengah, maka jumlah karakternya bertambah 1. Spasi turut dihitung sebagai 1 buah karakter.
Apabila kita memerlukan tanda petik tunggal di dalam string, maka kita tidak bisa menulisnya secara langsung, karena tanda petik tunggal akan dianggap sebagai tanda penutup string dan menyebabkan sintaks menjadi error. Sebagai solusinya kita bisa menggunakan escape sequence dengan cara menambahkan tanda backslash sebelum tanda petik tunggal. Dan kode pun kembali berjalan normal.
Selanjutnya kita buat variable $name2, dan kali ini kita menggunakan tanda petik ganda. Dan kita isi dengan nilai “Skysen”. Lalu kita var_dump. Sekilas kita lihat string yang menggunakan tanda petik tunggal masih sama dengan string yang menggunakan tanda petik ganda ya. Namun kalau di bahasa pemograman PHP, ada perbedaan yang lumayan jauh pada tanda petik ganda.
Perbedaan pertama adalah tanda petik ganda dapat menggunakan banyak escape sequence. Misalnya kita ingin agar teksnya pindah baris, kita bisa menggunakan \n atau new line. Misalnya setelah new line kita tulis Solution. String yang sama kita copy juga ke variable $name1 ya, agar teman-teman bisa melihat apa perbedaannya.
Pada string yang pertama, tanda \n dianggap bagian dari string, sehingga tetap ditampilkan pada var_dump. Sedangkan pada string yang kedua, tanda \n diproses sebagai ganti baris, sehingga tulisan Solution berpindah ke baris berikutnya.
Itu perbedaan pertama ya. Perbedaan selanjutnya adalah pada tanda kutip ganda, kita bisa melakukan yang namanya variable parsing. Jadi kita bisa memasukkan nama variable lain, dan PHP secara otomatis mengganti teksnya menjadi isi dari variable tersebut. Sebagai contoh kita buat variable $greet yang isinya adalah ‘Welcome’. Sekarang isi dari kedua string kita ubah menjadi “$greet Skysen”.
Kita lihat hasilnya berbeda ya. Pada string dengan tanda kutip tunggal, $greet dianggap sebagai bagian dari string, sehingga hasil yang ditampilkan tetap sama persis dengan yang kita ketik pada kode. Sedangkan pada string dengan tanda kutip ganda, PHP mencari variable greet dan mengganti $greet menjadi isi variablenya, sehingga teks kita berubah menjadi Welcome Skysen.
Jadi sekarang kita sudah mengerti ya perbedaan dari string yang menggunakan tanda kutip tunggal dengan tanda kutip ganda. Kalau teman-teman bertanya, kapan kita harus menggunakan tanda kutip tunggal dan kapan kita menggunakan tanda kutip ganda? Jawabannya adalah selalu gunakan tanda kutip tunggal, agar script kita berjalan dengan lebih cepat. Kita hanya menggunakan tanda kutip ganda pada saat kita perlu menggunakan escape sequence atau variable parsing.
Selanjutnya kita akan mencoba membuat string dengan menggunakan Heredoc. Heredoc biasanya digunakan untuk membuat string yang terdiri dari banyak baris. Kalau pada server-side script, biasanya untuk menulis kode HTML-nya. Sebagai contoh, kita hapus dahulu variable $name1 dan $name2. Kemudian kita buat variable baru $html. Variable ini kita isi dengan menggunakan Heredoc.
Caranya pertama kita ketik dulu tanda lebih kecil sebanyak 3 kali, kemudian diikuti oleh identifier. Identifier ini nantinya akan digunakan sebagai penanda akhir dari string. Penulisan nama identifier mengikuti aturan penamaan variable, yaitu hanya terdiri dari huruf, angka dan underscore. Tidak boleh didahului oleh angka. Biasanya identifier menggunakan format UPPER_CASE. Sebagai contoh kita gunakan kata END. Lalu kita tekan enter.
Semua baris setelah <<<END dianggap sebagai isi string. Sebagai contoh, kita bisa copy paste kode boilerplate dari Bootstrap. Setelah tag penutup HTML, kita tekan enter. Dan pada baris baru kita ketik identifier kita, yaitu END sebagai penanda akhir dari string. Kita coba var_dump isi variable $html.
Perhatikan bahwa isi string sudah termasuk indentation dari kode HTML yang kita paste. String boleh mengandung tanda petik. Yang paling penting adalah dalam string tidak boleh mengandung kata identifier yang sedang kita gunakan. Jadi kalau misalkan kita tambahkan kata END ING. Maka kata END dianggap sebagai akhir string, sehingga menyebabkan error. Oleh karena itu lebih baik kita menggunakan kata yang lebih panjang sebagai identifier sehingga bisa mencegah terjadinya error seperti ini.
Pada PHP versi 7,3 kebawah, identifer penutup Heredoc harus berada pada baris baru dan harus berada di bagian paling depan. Banyak programmer yang mengeluh karena gaya penulisan kodenya menjadi tidak rapi. Sejak versi 7,3 keatas, identifier penutup Heredoc sudah boleh menggunakan identasi. Tapi perlu diingat bahwa kita tidak boleh meng-indent identifier-nya saja seperti ini. Ini menyebabkan kode menjadi error.
Kalau kita hendak menggunakan identasi, maka kita harus memberikan indent ke seluruh isi string. Kita coba ya. Setelah seluruh string diberikan indent, barulah kode dapat berjalan dengan benar.
String yang menggunakan Heredoc ini mirip dengan string yang menggunakan tanda kutip ganda. Artinya kita bisa menggunakan escape sequence dan variable parsing di dalam string. Sebagai contoh, kita ganti teks dari tag title dan h1 menjadi variable $greet. Setelah itu kita tambahkan escape sequence \n. Kita lihat hasilnya. Sekarang isi dari tag title dan h1 berubah menjadi Welcome ditambah baris baru.
Cara terakhir untuk membuat string adalah Nowdoc. Caranya mirip dengan Heredoc. Hanya saja identifier pembukanya harus kita tulis dalam tanda petik tunggal. Sebagai hasilnya, string Nowdoc mirip dengan string yang dibuat menggunakan tanda petik tunggal. Semua variable dan escape sequence dianggap sebagai bagian dari string dan ditulis apa adanya.
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.