{"id":687,"date":"2026-07-08T19:54:19","date_gmt":"2026-07-08T12:54:19","guid":{"rendered":"https:\/\/www.bisasoftware.id\/2026\/?p=687"},"modified":"2026-07-08T19:54:19","modified_gmt":"2026-07-08T12:54:19","slug":"bab-8-2b-2b-strict-types-dan-best-practice-function-php-modern","status":"publish","type":"post","link":"https:\/\/www.bisasoftware.id\/2026\/bab-8-2b-2b-strict-types-dan-best-practice-function-php-modern\/","title":{"rendered":"BAB 8.2B-2B \u2013 STRICT TYPES DAN BEST PRACTICE FUNCTION PHP MODERN"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Tujuan Pembelajaran<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Setelah mempelajari bab ini, peserta didik mampu:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Memahami konsep <strong>Strict Types<\/strong>.<\/li>\n\n\n\n<li>Mengetahui perbedaan mode normal dan mode ketat.<\/li>\n\n\n\n<li>Mengenal <strong>TypeError<\/strong>.<\/li>\n\n\n\n<li>Menggunakan <strong>Mixed Type<\/strong> jika diperlukan.<\/li>\n\n\n\n<li>Menulis function sesuai standar industri.<\/li>\n\n\n\n<li>Membuat function yang mudah dipelihara dan dikembangkan.<\/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 bab sebelumnya kita sudah mengenal <strong>Type Declaration<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Contoh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function tambah(int $a, int $b): int\n{\n    return $a + $b;\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Namun PHP memiliki dua cara dalam menangani tipe data, yaitu:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Weak Typing (Mode Normal)<\/strong><\/li>\n\n\n\n<li><strong>Strict Typing (Mode Ketat)<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Memahami perbedaan keduanya sangat penting karena hampir semua framework PHP modern memanfaatkan fitur ini.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Weak Typing (Mode Normal)<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Secara default PHP menggunakan <strong>Weak Typing<\/strong>.<\/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 tambah(int $a, int $b): int\n{\n    return $a + $b;\n}\n\necho tambah(\"10\", \"20\");\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>30<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mengapa bisa?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Karena PHP otomatis mengubah string <code>\"10\"<\/code> menjadi integer <code>10<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Proses ini disebut <strong>Type Coercion<\/strong> (konversi tipe data secara otomatis).<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Kelebihan Weak Typing<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mudah digunakan.<\/li>\n\n\n\n<li>Cocok untuk pemula.<\/li>\n\n\n\n<li>Banyak kode PHP lama masih menggunakan mode ini.<\/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\">Kekurangan Weak Typing<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kesalahan lebih sulit dideteksi.<\/li>\n\n\n\n<li>Bug dapat muncul saat aplikasi sudah berjalan.<\/li>\n\n\n\n<li>Terkadang menghasilkan perilaku yang tidak diharapkan.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Contoh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo tambah(\"Sepuluh\", 20);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Hasilnya tidak sesuai harapan karena <code>\"Sepuluh\"<\/code> bukan angka yang valid.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Strict Types<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Untuk mencegah konversi otomatis, PHP menyediakan <strong>Strict Types<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aktifkan dengan menambahkan deklarasi berikut pada <strong>baris pertama<\/strong> file PHP:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\ndeclare(strict_types=1);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Contoh lengkap:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\ndeclare(strict_types=1);\n\nfunction tambah(int $a, int $b): int\n{\n    return $a + $b;\n}\n\necho tambah(10, 20);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Program akan berjalan normal.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Apa yang Terjadi Jika Tipe Data Salah?<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\ndeclare(strict_types=1);\n\nfunction tambah(int $a, int $b): int\n{\n    return $a + $b;\n}\n\necho tambah(\"10\", \"20\");<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Hasil:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Fatal error:\nTypeError<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Inilah tujuan <strong>Strict Types<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Program langsung memberi tahu bahwa tipe data yang diberikan tidak sesuai.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Kapan Menggunakan Strict Types?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Gunakan <code>declare(strict_types=1);<\/code> ketika:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Membangun aplikasi baru.<\/li>\n\n\n\n<li>Mengembangkan API.<\/li>\n\n\n\n<li>Menggunakan Laravel atau framework modern.<\/li>\n\n\n\n<li>Membuat aplikasi yang memerlukan validasi tipe data yang ketat.<\/li>\n\n\n\n<li>Bekerja dalam tim agar kontrak fungsi lebih jelas.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Untuk proyek PHP lama (<em>legacy project<\/em>), penerapan <code>strict_types<\/code> perlu dilakukan secara bertahap karena dapat memunculkan kesalahan pada kode yang sebelumnya mengandalkan konversi otomatis.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Mengenal TypeError<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Saat menggunakan Strict Types, kesalahan tipe data akan menghasilkan <strong>TypeError<\/strong>.<\/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\ndeclare(strict_types=1);\n\nfunction umur(int $u)\n{\n    return $u;\n}\n\necho umur(\"17\");<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Hasil:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>TypeError<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Artinya:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Parameter yang diterima tidak sesuai dengan yang diminta oleh function.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Mixed Type<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">PHP 8 memperkenalkan tipe data:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mixed<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Artinya parameter dapat menerima berbagai tipe data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Contoh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function tampilkan(mixed $data): mixed\n{\n    return $data;\n}\n\necho tampilkan(\"PHP\");\necho \"&lt;br&gt;\";\necho tampilkan(100);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PHP\n100<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Kapan Menggunakan <code>mixed<\/code>?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Gunakan hanya jika function memang dirancang menerima berbagai jenis data, misalnya:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Utility helper.<\/li>\n\n\n\n<li>Library umum.<\/li>\n\n\n\n<li>Formatter.<\/li>\n\n\n\n<li>Logger.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Untuk aplikasi bisnis sehari-hari, lebih baik gunakan tipe data yang spesifik (<code>int<\/code>, <code>string<\/code>, <code>float<\/code>, dan sebagainya) agar kode 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\">Standar Penulisan Function di Dunia Industri<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Contoh function yang baik:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\ndeclare(strict_types=1);\n\nfunction hitungDiskon(\n    float $harga,\n    float $persen\n): float\n{\n    return $harga * ($persen \/ 100);\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Keunggulan:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nama function jelas.<\/li>\n\n\n\n<li>Nama parameter mudah dipahami.<\/li>\n\n\n\n<li>Menggunakan Type Declaration.<\/li>\n\n\n\n<li>Menggunakan Return Type.<\/li>\n\n\n\n<li>Mudah diuji dan digunakan kembali.<\/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\">Penamaan Function<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Gunakan nama yang menggambarkan pekerjaannya.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Contoh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>hitungTotal()<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>cekLogin()<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>simpanDataSiswa()<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Hindari:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>x()<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>abc()<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>proses()<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Satu Function, Satu Tanggung Jawab<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Kurang baik:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function prosesSemua()\n{\n    \/\/ login\n    \/\/ simpan data\n    \/\/ kirim email\n    \/\/ cetak laporan\n}<\/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 login()\n{\n}\n\nfunction simpanData()\n{\n}\n\nfunction kirimEmail()\n{\n}\n\nfunction cetakLaporan()\n{\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Prinsip ini dikenal sebagai <strong>Single Responsibility Principle (SRP)<\/strong> dan merupakan salah satu prinsip dasar dalam pengembangan perangkat lunak modern.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Gunakan Return daripada Echo<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Kurang baik:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function luas()\n{\n    echo 100;\n}<\/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 luas(): int\n{\n    return 100;\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dengan <code>return<\/code>, hasil function dapat digunakan kembali.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$hasil = luas();\n\necho $hasil * 2;<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Hindari Variabel Global<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Kurang baik:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$harga = 100000;\n\nfunction diskon()\n{\n    global $harga;\n\n    return $harga * 0.1;\n}<\/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 diskon(float $harga): float\n{\n    return $harga * 0.1;\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Cara ini membuat function lebih mudah diuji dan tidak bergantung pada keadaan di luar function.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Studi Kasus<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Menghitung Total Belanja<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\ndeclare(strict_types=1);\n\nfunction hitungDiskon(float $harga): float\n{\n    return $harga * 0.1;\n}\n\nfunction totalBayar(float $harga): float\n{\n    return $harga - hitungDiskon($harga);\n}\n\n$harga = 500000;\n\necho \"Harga Awal : Rp \".number_format($harga, 0, \",\", \".\").\"&lt;br&gt;\";\necho \"Diskon     : Rp \".number_format(hitungDiskon($harga), 0, \",\", \".\").\"&lt;br&gt;\";\necho \"Total Bayar: Rp \".number_format(totalBayar($harga), 0, \",\", \".\");\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>Harga Awal : Rp 500.000\nDiskon     : Rp 50.000\nTotal Bayar: Rp 450.000<\/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 Dunia Industri<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Sebelum menulis function, biasakan mengikuti daftar berikut:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Gunakan nama function yang jelas.<\/li>\n\n\n\n<li>Gunakan <strong>Type Declaration<\/strong> untuk parameter.<\/li>\n\n\n\n<li>Gunakan <strong>Return Type Declaration<\/strong>.<\/li>\n\n\n\n<li>Aktifkan <code>declare(strict_types=1);<\/code> pada proyek baru jika seluruh tim sepakat menggunakannya.<\/li>\n\n\n\n<li>Hindari penggunaan variabel global jika dapat digantikan dengan parameter.<\/li>\n\n\n\n<li>Satu function hanya mengerjakan satu tugas.<\/li>\n\n\n\n<li>Gunakan <code>return<\/code> untuk mengembalikan hasil, bukan <code>echo<\/code>, kecuali function memang bertugas menampilkan output.<\/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\">Latihan Praktik<\/h1>\n\n\n\n<h3 class=\"wp-block-heading\">Latihan 1<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Buat function:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function hitungPPN(float $harga): float<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">yang mengembalikan nilai PPN sebesar 11%.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Latihan 2<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Buat function:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function cekKelulusan(int $nilai): string<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">yang mengembalikan <code>\"Lulus\"<\/code> jika nilai \u2265 75, selain itu <code>\"Remedial\"<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Latihan 3<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Aktifkan <code>declare(strict_types=1);<\/code>, lalu coba panggil function dengan parameter yang salah. Amati pesan <strong>TypeError<\/strong> yang muncul dan jelaskan penyebabnya.<\/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<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Mini Project \u2013 Sistem Penjualan Sederhana<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Buat program yang terdiri atas 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>totalBayar(float $harga): float<\/code><\/li>\n\n\n\n<li><code>formatRupiah(float $nilai): 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>Aktifkan <code>declare(strict_types=1);<\/code>.<\/li>\n\n\n\n<li>Semua function harus menggunakan <strong>Type Declaration<\/strong> dan <strong>Return Type<\/strong>.<\/li>\n\n\n\n<li>Hindari penggunaan variabel global.<\/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<\/li>\n\n\n\n<li>Diskon<\/li>\n\n\n\n<li>PPN<\/li>\n\n\n\n<li>Total Bayar<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Tujuan Pembelajaran Setelah mempelajari bab ini, peserta didik mampu: Pendahuluan Pada bab sebelumnya kita sudah mengenal Type Declaration. Contoh: Namun&#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-687","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\/687","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=687"}],"version-history":[{"count":1,"href":"https:\/\/www.bisasoftware.id\/2026\/wp-json\/wp\/v2\/posts\/687\/revisions"}],"predecessor-version":[{"id":688,"href":"https:\/\/www.bisasoftware.id\/2026\/wp-json\/wp\/v2\/posts\/687\/revisions\/688"}],"wp:attachment":[{"href":"https:\/\/www.bisasoftware.id\/2026\/wp-json\/wp\/v2\/media?parent=687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bisasoftware.id\/2026\/wp-json\/wp\/v2\/categories?post=687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bisasoftware.id\/2026\/wp-json\/wp\/v2\/tags?post=687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}