{"id":684,"date":"2026-07-08T19:46:28","date_gmt":"2026-07-08T12:46:28","guid":{"rendered":"https:\/\/www.bisasoftware.id\/2026\/?p=684"},"modified":"2026-07-08T19:51:23","modified_gmt":"2026-07-08T12:51:23","slug":"bab-8-2b-2a-type-declaration-pada-function","status":"publish","type":"post","link":"https:\/\/www.bisasoftware.id\/2026\/bab-8-2b-2a-type-declaration-pada-function\/","title":{"rendered":"BAB 8.2B-2A \u2013 TYPE DECLARATION PADA FUNCTION"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Tujuan Pembelajaran<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Setelah mempelajari subbab ini, peserta didik diharapkan mampu:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Menjelaskan pengertian <strong>Type Declaration<\/strong>.<\/li>\n\n\n\n<li>Memahami manfaat penggunaan tipe data pada parameter function.<\/li>\n\n\n\n<li>Menggunakan <strong>Scalar Type Declaration<\/strong>.<\/li>\n\n\n\n<li>Menggunakan <strong>Return Type Declaration<\/strong>.<\/li>\n\n\n\n<li>Memahami <strong>Nullable Type<\/strong>.<\/li>\n\n\n\n<li>Memahami <strong>Union Type<\/strong> (PHP 8+).<\/li>\n\n\n\n<li>Menerapkan Type Declaration pada studi kasus nyata.<\/li>\n\n\n\n<li>Menulis function sesuai standar PHP modern.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Pendahuluan<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Pada materi sebelumnya kita telah membuat function seperti berikut.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function tambah($a, $b)\n{\n    return $a + $b;\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Program tersebut berjalan dengan baik.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tetapi bagaimana jika dipanggil seperti berikut?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo tambah(\"Andi\", \"Budi\");<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Atau<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo tambah(10, \"Lima\");<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Apakah hasilnya sesuai harapan?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Belum tentu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kesalahan seperti ini sering menjadi sumber <strong>bug<\/strong> pada aplikasi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Oleh karena itu, PHP modern menyediakan <strong>Type Declaration<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Apa itu Type Declaration?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Type Declaration adalah fitur PHP yang digunakan untuk <strong>menentukan tipe data<\/strong> yang boleh diterima oleh parameter function atau dikembalikan oleh function.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dengan kata lain, programmer dapat memberi aturan seperti berikut:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Parameter pertama harus berupa <strong>integer<\/strong><\/li>\n\n\n\n<li>Parameter kedua harus berupa <strong>integer<\/strong><\/li>\n\n\n\n<li>Nilai yang dikembalikan harus berupa <strong>integer<\/strong><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Mengapa Type Declaration Penting?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Tanpa Type Declaration:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function kali($a, $b)\n{\n    return $a * $b;\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Programmer lain dapat memanggil:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kali(\"Sepuluh\", true);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Kode menjadi sulit diprediksi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dengan Type Declaration:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function kali(int $a, int $b)\n{\n    return $a * $b;\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Parameter yang diharapkan menjadi lebih jelas.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Jenis Type Declaration<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">PHP mendukung berbagai tipe data, antara lain:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Tipe<\/th><th>Keterangan<\/th><\/tr><\/thead><tbody><tr><td><code>int<\/code><\/td><td>Bilangan bulat<\/td><\/tr><tr><td><code>float<\/code><\/td><td>Bilangan desimal<\/td><\/tr><tr><td><code>string<\/code><\/td><td>Teks<\/td><\/tr><tr><td><code>bool<\/code><\/td><td>Nilai benar atau salah<\/td><\/tr><tr><td><code>array<\/code><\/td><td>Larik<\/td><\/tr><tr><td><code>object<\/code><\/td><td>Objek<\/td><\/tr><tr><td><code>callable<\/code><\/td><td>Function yang dapat dipanggil<\/td><\/tr><tr><td><code>iterable<\/code><\/td><td>Data yang dapat diulang<\/td><\/tr><tr><td><code>mixed<\/code><\/td><td>Berbagai tipe data (PHP 8+)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Pada subbab ini kita akan memulai dari tipe yang paling sering digunakan.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Integer Type<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Contoh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nfunction luasPersegi(int $sisi)\n{\n    return $sisi * $sisi;\n}\n\necho luasPersegi(8);\n\n?&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>64<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Dua Parameter Integer<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nfunction tambah(int $a, int $b)\n{\n    return $a + $b;\n}\n\necho tambah(20, 30);\n\n?&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>50<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">String Type<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nfunction salam(string $nama)\n{\n    return \"Halo \".$nama;\n}\n\necho salam(\"Andi\");\n\n?&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Halo Andi<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Float Type<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nfunction luasLingkaran(float $r)\n{\n    return 3.14 * $r * $r;\n}\n\necho luasLingkaran(7.5);\n\n?&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>176.625<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Boolean Type<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nfunction status(bool $aktif)\n{\n    if($aktif){\n        return \"Aktif\";\n    }\n\n    return \"Tidak Aktif\";\n}\n\necho status(true);\n\n?&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Aktif<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Menggabungkan Beberapa Tipe<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nfunction biodata(\n    string $nama,\n    int $umur,\n    bool $aktif\n)\n{\n    echo \"Nama : \".$nama.\"&lt;br&gt;\";\n    echo \"Umur : \".$umur.\"&lt;br&gt;\";\n\n    echo \"Status : \";\n\n    echo $aktif ? \"Aktif\" : \"Tidak Aktif\";\n}\n\nbiodata(\n    \"Andi\",\n    17,\n    true\n);\n\n?&gt;<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Return Type Declaration<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Selain parameter, kita juga dapat menentukan tipe data hasil yang dikembalikan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sintaks:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function namaFunction(): tipeData<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Contoh<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nfunction tambah(\n    int $a,\n    int $b\n): int\n{\n    return $a + $b;\n}\n\necho tambah(10,5);\n\n?&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>15<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Return String<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nfunction sekolah(): string\n{\n    return \"SMK Negeri 1\";\n}\n\necho sekolah();\n\n?&gt;<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Return Boolean<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nfunction lulus(int $nilai): bool\n{\n    return $nilai &gt;= 75;\n}\n\nvar_dump(lulus(80));\n\n?&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bool(true)<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Nullable Type<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Kadang sebuah parameter boleh bernilai <strong>null<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gunakan tanda <code>?<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Contoh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nfunction cetakNama(?string $nama)\n{\n    if($nama === null){\n        echo \"Nama belum diisi\";\n    }else{\n        echo $nama;\n    }\n}\n\ncetakNama(null);\n\n?&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Nama belum diisi<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Contoh lain:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cetakNama(\"Budi\");<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Budi<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Union Type (PHP 8+)<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">PHP 8 memperkenalkan <strong>Union Type<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Artinya parameter dapat menerima lebih dari satu tipe data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Contoh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nfunction tampilkan(\n    int|string $data\n)\n{\n    echo $data;\n}\n\ntampilkan(100);\n\necho \"&lt;br&gt;\";\n\ntampilkan(\"Seratus\");\n\n?&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>100\n\nSeratus<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Union Return Type<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nfunction hasil(bool $lulus): string|int\n{\n    if($lulus){\n        return \"Lulus\";\n    }\n\n    return 0;\n}\n\necho hasil(true);\n\n?&gt;<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Studi Kasus 1<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Menghitung Luas Persegi Panjang<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nfunction luas(\n    float $panjang,\n    float $lebar\n): float\n{\n    return $panjang * $lebar;\n}\n\necho luas(12.5,8);\n\n?&gt;<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Studi Kasus 2<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Menghitung Gaji Bersih<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nfunction gajiBersih(\n    int $gajiPokok,\n    int $bonus\n): int\n{\n    return $gajiPokok + $bonus;\n}\n\necho gajiBersih(\n    5000000,\n    1000000\n);\n\n?&gt;<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Studi Kasus 3<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Menentukan Kelulusan<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nfunction cekKelulusan(\n    int $nilai\n): string\n{\n    return $nilai &gt;=75\n        ? \"Lulus\"\n        : \"Remedial\";\n}\n\necho cekKelulusan(82);\n\n?&gt;<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Best Practice Programmer<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Gunakan Type Declaration pada Function Baru<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kurang baik:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function tambah($a,$b)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Lebih baik:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function tambah(\n    int $a,\n    int $b\n): int<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Gunakan Return Type<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Return type membuat function lebih mudah dipahami oleh programmer lain.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Pilih Tipe Data yang Tepat<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Gunakan:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>int<\/code> untuk bilangan bulat<\/li>\n\n\n\n<li><code>float<\/code> untuk angka desimal<\/li>\n\n\n\n<li><code>string<\/code> untuk teks<\/li>\n\n\n\n<li><code>bool<\/code> untuk status<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Hindari menggunakan <code>mixed<\/code> jika satu tipe data sudah cukup.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Kesalahan yang Sering Dilakukan Pemula<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Salah Menentukan Tipe<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>function umur(\n    string $umur\n)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Padahal umur lebih tepat menggunakan <code>int<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Tidak Menentukan Return Type<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Akibatnya programmer lain tidak mengetahui jenis data yang dikembalikan oleh function.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Menggunakan Nullable Tanpa Alasan<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nullable (<code>?string<\/code>, <code>?int<\/code>, dan sebagainya) hanya digunakan jika nilai <code>null<\/code> memang merupakan kondisi yang valid dalam aplikasi.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Latihan Praktik<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Latihan 1<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Buat function:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>luasPersegi(int $sisi): int<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Latihan 2<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Buat function:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kelilingPersegiPanjang(\n    float $panjang,\n    float $lebar\n): float<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Latihan 3<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Buat function:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>profil(\n    string $nama,\n    int $umur\n): string<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">yang mengembalikan teks biodata.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Latihan 4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Gunakan <code>?string<\/code> pada parameter nama dan tampilkan pesan jika nilainya <code>null<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Latihan 5<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Buat function menggunakan <strong>Union Type<\/strong> yang menerima <code>int|string<\/code>, kemudian tampilkan nilainya.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Tugas Praktik Bab 8.2B-2A<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Sistem Data Produk<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Buat program menggunakan beberapa function dengan <strong>Type Declaration<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Minimal memiliki function berikut:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>hitungDiskon(float $harga): float<\/code><\/li>\n\n\n\n<li><code>hitungPPN(float $harga): float<\/code><\/li>\n\n\n\n<li><code>hargaAkhir(float $harga): float<\/code><\/li>\n\n\n\n<li><code>statusStok(int $stok): string<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ketentuan:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Semua parameter harus menggunakan <strong>Type Declaration<\/strong>.<\/li>\n\n\n\n<li>Semua function harus memiliki <strong>Return Type Declaration<\/strong>.<\/li>\n\n\n\n<li>Tampilkan hasil dalam tabel HTML dengan kolom:\n<ul class=\"wp-block-list\">\n<li>Nama Produk<\/li>\n\n\n\n<li>Harga Awal<\/li>\n\n\n\n<li>Diskon<\/li>\n\n\n\n<li>PPN<\/li>\n\n\n\n<li>Harga Akhir<\/li>\n\n\n\n<li>Status Stok<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Tambahkan minimal lima data produk.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Tantangan (Opsional)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Gunakan <strong>Union Type<\/strong> pada fungsi pencarian produk sehingga dapat menerima <strong>ID produk (integer)<\/strong> atau <strong>kode produk (string)<\/strong>.<\/li>\n\n\n\n<li>Tambahkan <strong>Nullable Type<\/strong> pada parameter deskripsi produk sehingga dapat bernilai <code>null<\/code> jika belum diisi.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tujuan Pembelajaran Setelah mempelajari subbab ini, peserta didik diharapkan mampu: Pendahuluan Pada materi sebelumnya kita telah membuat function seperti berikut&#8230;.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[21],"tags":[38],"class_list":["post-684","post","type-post","status-publish","format-standard","hentry","category-tutorial-php","tag-tutorial-php"],"_links":{"self":[{"href":"https:\/\/www.bisasoftware.id\/2026\/wp-json\/wp\/v2\/posts\/684","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bisasoftware.id\/2026\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bisasoftware.id\/2026\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bisasoftware.id\/2026\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bisasoftware.id\/2026\/wp-json\/wp\/v2\/comments?post=684"}],"version-history":[{"count":2,"href":"https:\/\/www.bisasoftware.id\/2026\/wp-json\/wp\/v2\/posts\/684\/revisions"}],"predecessor-version":[{"id":686,"href":"https:\/\/www.bisasoftware.id\/2026\/wp-json\/wp\/v2\/posts\/684\/revisions\/686"}],"wp:attachment":[{"href":"https:\/\/www.bisasoftware.id\/2026\/wp-json\/wp\/v2\/media?parent=684"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bisasoftware.id\/2026\/wp-json\/wp\/v2\/categories?post=684"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bisasoftware.id\/2026\/wp-json\/wp\/v2\/tags?post=684"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}