Aplikasi web adalah mesin pengolah teks: judul artikel, alamat email, pesan error, sampai query pencarian semuanya berupa string. PHP menyediakan puluhan fungsi string bawaan untuk kebutuhan tersebut, dan Laravel menambahkan class Illuminate\Support\Str dengan utilitas level produk seperti slug(), camel(), dan limit(). Chapter ini menutup rangkaian fondasi PHP kita dengan dua lapis tersebut: fungsi bawaan PHP untuk operasi sehari-hari, lalu koleksi Str untuk pola yang sering muncul di aplikasi nyata. Referensi lengkapnya ada di dokumentasi string Laravel
.
Kutip Tunggal vs Kutip Ganda #
PHP membedakan string berkutip tunggal dan berkutip ganda secara tegas. String berkutip ganda menginterpolasi variabel — nama variabel di dalam teks digantikan nilainya — serta mengenali escape sequence seperti \n, sedangkan string berkutip tunggal mencetak isinya apa adanya:
<?php
$nama = "Budi";
echo 'Halo, $nama!\n', "\n";
echo "Halo, $nama!\n";
echo "Halo, {$nama} Santoso\n";Output yang Dihasilkan:
Halo, $nama!\n
Halo, Budi!
Halo, Budi SantosoBaris pertama mencetak $nama dan \n secara literal karena kutip tunggal tidak menginterpolasi apa pun. Kurung kurawal {$nama} dipakai ketika nama variabel perlu dipisah dari teks di sebelahnya. Konvensi umum di komunitas PHP dan Laravel: gunakan kutip tunggal untuk teks polos, kutip ganda saat butuh interpolasi.
Heredoc dan sprintf untuk Teks Terstruktur #
Untuk teks panjang, sintaks heredoc menghindari tanda kutip bertingkat. Untuk teks bercampur angka terformat, fungsi sprintf() lebih rapi daripada penggabungan manual:
<?php
$judul = "Instalasi";
$versi = 13;
$teks = <<<TEKS
Panduan {$judul} Laravel versi {$versi}.
Selamat mengikuti Course ini.
TEKS;
echo $teks, "\n";
echo sprintf("%s menyelesaikan %d tugas dari %d tugas.", "Budi", 3, 5), "\n";Output yang Dihasilkan:
Panduan Instalasi Laravel versi 13.
Selamat mengikuti Course ini.
Budi menyelesaikan 3 tugas dari 5 tugas.Penanda <<<TEKS membuka heredoc dan kata TEKS; pada baris tersendiri menutupnya — heredoc berperilaku seperti kutip ganda, lengkap dengan interpolasi. Pada sprintf(), %s diisi string dan %d diisi bilangan bulat secara berurutan.
Fungsi String Bawaan PHP #
Fungsi berikut adalah kosakata minimum untuk membaca kode PHP maupun Laravel:
| Fungsi | Peran |
|---|---|
strlen($s) | panjang string dalam byte |
strpos($s, $cari) | posisi pertama $cari, false jika tidak ada |
str_replace($a, $b, $s) | ganti semua $a dengan $b |
substr($s, $mulai, $panjang) | potong sebagian string |
strtolower($s) / strtoupper($s) | kecilkan / besarkan seluruh huruf |
trim($s) | buang spasi di awal dan akhir |
explode($pemisah, $s) | pecah string menjadi array |
implode($perekat, $arr) | gabungkan array menjadi string |
Berikut kelompok fungsi tersebut dalam satu alur kerja membersihkan input email:
<?php
$email = " [email protected] ";
echo strlen($email), "\n";
echo trim($email), "\n";
echo strtolower(trim($email)), "\n";
echo "Posisi @: ", strpos($email, "@"), "\n";
echo substr(trim($email), 0, 4), "\n";
$tagar = "php,laravel,framework";
$daftar = explode(",", $tagar);
echo implode(" -> ", $daftar), "\n";Output yang Dihasilkan:
20
[email protected]
[email protected]
Posisi @: 6
Budi
php -> laravel -> frameworkstrlen() menghitung 20 karena dua spasi di awal dan akhir ikut terhitung — trim() membuangnya sebelum strtolower() menyeragamkan huruf. Fungsi strpos() mengembalikan posisi berbasis nol, sehingga tanda @ berada di posisi enam. Pola explode() lalu implode() adalah cara klasik memecah dan merakit ulang teks berbasis pemisah.
Str: Koleksi String Laravel #
Ketika kebutuhan naik kelas — membuat slug URL, mengubah gaya kapital, memotong teks dengan elipsis — class Str Laravel menyediakan utilitas siap pakai. Berikut contoh yang kita jalankan langsung di sandbox Course ini:
<?php
use Illuminate\Support\Str;
echo Str::slug("Belajar Laravel: Routing dan Controller"), "\n";
echo Str::camel("total_harga_pesanan"), "\n";
echo Str::title("belajar php modern untuk laravel"), "\n";
echo Str::limit("Laravel adalah framework PHP yang elegan", 20), "\n";Output yang Dihasilkan:
belajar-laravel-routing-dan-controller
totalHargaPesanan
Belajar Php Modern Untuk Laravel
Laravel adalah frame...Str::slug() menghasilkan URL ramah dari judul bebas; Str::camel() mengubah snake_case menjadi camelCase — compiler Blade memakai method tersebut saat mengubah properti komponen menjadi nama variabel; Str::title() mengecilkan lalu membesarkan huruf awal tiap kata; Str::limit() memotong teks pada 20 karakter pertama dan menambahkan elipsis. Di kode sumbernya sendiri, Str memakai pola array yang sudah kita kenal — misalnya $options['omission'] ?? '...' untuk menetapkan elipsis default.
Fluent String dengan Str::of #
Method Str::of() membungkus string menjadi object Stringable yang bisa dirantai, gaya yang sama dengan Collection:
<?php
use Illuminate\Support\Str;
$hasil = Str::of(" belajar laravel framework ")
->trim()
->ucfirst()
->replace("framework", "untuk kerja");
echo $hasil, "\n";
echo Str::of("Rilis Laravel 13: Fitur Baru")->slug()->upper(), "\n";Output yang Dihasilkan:
Belajar laravel untuk kerja
RILIS-LARAVEL-13-FITUR-BARURantai pertama memanggil tiga method berurutan pada string yang sama: trim() membuang spasi, ucfirst() membesarkan huruf awal, dan replace() menukar satu kata. Rantai kedua menunjukkan bahwa hasil slug() tetap berupa object Stringable, sehingga method upper() bisa langsung menyusul. Pemanggilan echo pada Stringable berjalan mulus karena class tersebut mengimplementasikan __toString().
Dari variabel bertipe hingga string yang diolah Str, perangkat PHP untuk membaca kode Laravel kini lengkap. Babak berikutnya menaiki satu tangga lagi: associative array sebagai format data mentah untuk config, validasi, dan response Laravel.