PHP #05 - Mendalami Output

26 Jul 2020 • ⏳ ~ 7 menit

 

1. echo

echo merupakan konstruksi bahasa, bukan fungsi. Karena itu, penggunaan echo tidak perlu diikuti dengan tanda kurung. Namun pada penerapannya, penggunaan tanda kurung dalam penulisan echo diperbolehkan dengan syarat echo tidak memuat lebih dari satu parameter dengan tanda pemisah ,. Jika melanggar kaidah tersebut, kita akan mendapatkan pesan error berupa syntax error, unexpected ','.

echo digunakan untuk mencetak string, string multi-line, escape characters, variable, dll.

Ada beberapa poin penting terkait penggunaan echo:

  • echo adalah statement yang digunakan untuk menampilkan output.
  • echo dapat digunakan dengan atau tanpa tanda kurung [ echo() atau echo ].
  • echo tidak mengembalikan nilai apapun.
  • echo dapat memuat beberapa string yang dipisahkan oleh koma tanpa tanda kurung.
  • Statement echo dieksekusi lebih cepat daripada statement print.

Contoh penggunaan echo:

<?php
  echo 'Hello World!';
  echo 'Hello', ' World!';
  echo 'Hello' . ' World!';
  echo('Hello' . ' World!');

  echo "Hello \"World\"!";

  echo "Lorem ipsum dolor sit amet consectetur adipisicing elit.
  Quis inventore velit animi voluptatem dolorem saepe quasi error
  provident necessitatibus quo deserunt, incidunt fuga facere,
  eos veritatis dolores nobis expedita laborum?";
?>
Hello World!
Hello World!
Hello World!
Hello World!
Hello "World"!

Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis inventore velit animi voluptatem dolorem saepe quasi error provident necessitatibus quo deserunt, incidunt fuga facere, eos veritatis dolores nobis expedita laborum?

Perbedaan Tanda Kutip Satu [ ' ' ] dan Tanda Kutip Dua [ " " ] pada Echo

Tanda kutip satu dalam echo akan mencetak atau menampilkan seluruh isinya apa adanya, baik itu variable maupun escape characters. Sedangkan, tanda kutip dua dapat menampilkan nilai (value) dari variable hingga escape characters sekalipun (teks diolah terlebih dahulu sebelum ditampilkan).
Contoh:

<?php
  $color = "biru";
  
  echo "Langit berwarna \"$color\".";
  echo 'Langit berwarna \"$color\".';
?>
Langit berwarna "biru".
Langit berwarna \"$color\".

Shorthand Echo (Echo Tag)

Dalam PHP, kita juga mengenal adanya shorthand dalam penulisan echo, disebut juga dengan echo tag. Penulisan <?php echo ... dapat digantikan dengan <?= ....
Contoh:

<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>File PHP</title>
</head>
<body>
  <h1><?= "Shorthand Echo (Echo Tag)"; ?></h1>
  <?= "Hello World!"; ?>
</body>
</html>

2. print

Hampir sama dengan echo, print sebenarnya juga merupakan konstruksi bahasa yang digunakan untuk menampilkan teks. Namun, print selalu mengembalikan nilai 1 saat dieksekusi.

Contoh penerapan print:

<?php
  print "Seri Pembelajaran PHP Dasar!";
  print("Mendalami Output pada PHP");
?>
Seri Pembelajaran PHP Dasar!
Mendalami Output pada PHP

Walaupun memiliki fungsi yang sama untuk menampilkan teks, echo dan print memiliki perbedaan yang cukup signifikan. Adapun perbedaan kedua perintah output tersebut adalah sebagai berikut:

Perbandinganechoprint
Nilai kembalian-1
Banyak parameterboleh lebih dari 1hanya 1

3. printf

printf adalah fungsi yang digunakan untuk menampilkan teks terformat serta mengembalikan nilai dari panjang teks yang ditampilkan saat dieksekusi.

Perlu diperhatikan dalam printf, kita menggunakan tanda % untuk memformat teks. Contohnya untuk memformat bilangan bulat kita menggunakan %d, untuk memformat string kita menggunakan %s.

FormatFungsi
%bMenampilkan bilangan biner
%cMenampilkan karakter (character)
%sMenampilkan teks (string)
%dMenampilkan bilangan bulat (decimal)
%uMenampilkan bilangan cacah (unsigned decimal)
%fMenampilkan bilangan pecahan/desimal (float)
%oMenampilkan bilangan oktal
%xMenampilkan bilangan heksadesimal

Lalu, bagaimana cara menampilkan teks yang terformat? Perhatikan contoh berikut untuk lebih mengerti.

<?php
  $text = "tulisan dari variabel";

  printf("Ini adalah %s.", $text);
?>
Ini adalah tulisan dari variabel.

Bagaimana jika kita ingin menampilkan teks yang bersumber dari bilangan pecahan/desimal dengan printf? Perhatikan contoh berikut.

<?php
  $number = 12.45667711;

  printf("%.2f", $number);
  printf("%.5f", $number);
?>
12.46
12.45668

Dalam output tersebut, kita dapat memperhatikan bahwa %.2f akan menampilkan 2 angka di belakang floating point (titik) dari bilangan desimal.
Begitu juga dengan %.5f yang akan menampilkan 5 angka di belakang floating point (titik) dari bilangan desimal.

Kesimpulan:
Format %.nf, dengan n = banyak angka di belakang floating point (titik) dari bilangan desimal.

Kali ini, kita akan melihat perbedaan hasil output menggunakan echo dan printf pada contoh berikut.

<?php
  $grade = 4;

  echo "IPK Hendry adalah $grade";
  printf("IPK Hendry adalah %.2f", $grade);
?>
IPK Hendry adalah 4
IPK Hendry adalah 4.00

Dapat kita lihat bahwa echo hanya akan menampilkan teks, sedangkan printf akan memformat teks terlebih dahulu sebelum ditampilkan.

4. sprintf

sprintf() berfungsi untuk menulis/menyimpan string yang diformat ke suatu variabel. sprintf juga dapat langsung ditampilkan dengan bantuan perintah output lainnya.

Contoh penerapan sprintf:

<?php
  $sentence = 'Dompet itu seharga';
  $price = 100000;

  $statement = sprintf("%s %u rupiah", $sentence, $price);
  print($statement);

  echo sprintf("%s Rp%.2f", $sentence, $price)
?>
Dompet itu seharga 100000 rupiah
Dompet itu seharga Rp100000.00

5. print_r

print_r digunakan untuk mencetak output ke browser, namun dengan format yang lebih “readable”. “readable” berarti kita dapat membaca informasi atau nilai dari suatu variabel dengan lebih mudah. print_r juga dimanfaatkan sebagai alternatif untuk mencetak array atau objek. Hal ini dikarenakan echo tidak dapat mencetak array atau object menggunakan sehingga mengakibatkan error berupa Notice: Array to string conversion atau Fatal error: Uncaught Error: Object of class stdClass could not be converted to string.

<?php
  $students = [
    'name' => ['Christ', 'Sandy', 'Alvin'],
    'subject' => 'IT',
  ];
  $college = "Universitas X";

  print_r($students);
  print_r($college);
?>

Tampilan pada halaman:

Array ( [name] => Array ( [0] => Christ [1] => Sandy [2] => Alvin ) [subject] => IT ) Universitas X

Tampilan pada view source halaman:

Array
(
    [name] => Array
        (
            [0] => Christ
            [1] => Sandy
            [2] => Alvin
        )

    [subject] => IT
)
Universitas X

print_r umumnya digunakan dalam debugging array dan object dalam PHP. Fungsi ini digunakan untuk mencetak/ mengetahui isi dari array dan object (class).

Pada object, print_r akan mencetak properti protected dan private, tetapi tidak untuk properti static.

6. var_dump

var_dump digunakan untuk mencetak output ke browser secara mendetail dalam proses debugging. var_dump tidak hanya digunakan untuk menampilkan informasi nilai, tetapi juga struktur informasi (panjang dan tipe data) dari suatu variabel.

Contoh penerapan var_dump:

<?php
  $students = [
    'name' => ['Christ', 'Sandy', 'Alvin'],
    'subject' => 'IT',
  ];
  $college = "Universitas X";

  var_dump($students);
  var_dump($college);
?>

Tampilan pada halaman:

array(2) { ["name"]=> array(3) { [0]=> string(6) "Christ" [1]=> string(5) "Sandy" [2]=> string(5) "Alvin" } ["subject"]=> string(2) "IT" } string(13) "Universitas X"

Tampilan pada view source halaman:

array(2) {
  ["name"]=>
  array(3) {
    [0]=>
    string(6) "Christ"
    [1]=>
    string(5) "Sandy"
    [2]=>
    string(5) "Alvin"
  }
  ["subject"]=>
  string(2) "IT"
}
string(13) "Universitas X"

Pada output var_dump pertama terdapat informasi array(2) menandakan bahwa sebuah variabel dengan tipe data array berisi 2 buah elemen. Elemen pertama dengan key “name” (["name"]) merupakan array dengan 3 buah elemen, masing-masing bertipe data string. Elemen kedua dengan key “subject” (["subject"]) memuat nilai bertipe data string sepanjang 2 karakter.

Sedangkan untuk output kedua, informasi yang ditampilkan berupa sebuah string sepanjang 13 karakter, yaitu “Universitas X”.

Dalam PHP, tampilan output dilakukan pada browser dan diinterpretasikan sebagai HTML. Pada markup language ini, kita tidak dapat mengubah tampilan dengan menambah extra spaces atau extra lines. Browser secara otomatis akan menghapus extra spaces atau extra lines saat halaman ditampilkan. Hal ini mengakibatkan output sulit terbaca.

Untuk itu, pembacaan output yang “readable” dapat dilakukan dengan View Source (menggunakan shortcut Ctrl + U pada PC, ⌘ + U atau ⌥ + ⌘ + U pada Mac, disesuaikan dengan browser yang digunakan).

Alternatif lain yang dapat digunakan adalah menggunakan tag <pre> seperti contoh berikut:

<?php
  $students = [
    'name' => ['Christ', 'Sandy', 'Alvin'],
    'subject' => 'IT',
  ];
  $college = "Universitas X";
?>
<pre><?= print_r($students); ></pre>
<pre><?= print_r($college); ></pre>

Kita juga dapat memanfaatkan manipulasi header pada PHP sehingga browser menampilkan halaman sebagai plain text bukan HTML.

<?php
  header('Content-Type: text/plain; charset=utf-8');

  $students = [
    'name' => ['Christ', 'Sandy', 'Alvin'],
    'subject' => 'IT',
  ];
  $college = "Universitas X";

  print_r($students);
  print_r($college);
?>

Perbedaan print_r() dan var_dump()

Fungsi print_r() mencetak isi dari suatu variabel tanpa menyertakan detail seperti panjang dan tipe data dari variabel dengan tujuan lebih mudah dibaca. Sedangkan, var_dump() mencetak isi dari suatu variabel dengan menyertakan panjang dan tipe datanya sehingga mempermudah proses debugging.

PHP

PHP #06 - Variabel & Tipe Data (Bag. I)

PHP #04 - Membuat dan Menjalankan File PHP Pertama

comments powered by Disqus