Tutorial PHP: Cara Memotong atau Mengambil Sebagian String (fungsi substr)

Pada tutorial belajar PHP Duniailkom kali ini saya akan membahas sebuah fungsi sederhana yang cukup sering digunakan, yakni fungsi substr(). Fungsi substr() digunakan untuk memotong sebuah string atau mengambil sebagian nilai dari sebuah string di dalam PHP.


Mengenal Fungsi substr()

Fungsi substr() adalah fungsi PHP untuk memotong string, atau untuk mengambil sebagian nilai dari sebuah string. Fitur ini cukup sering digunakan dalam proses pembuatan program PHP, terutama yang membutuhkan manipulasi string.

Sebagai contoh, misalkan kita memiliki sebuah string berbentuk tanggal: "14-09-2015". Bagaimana caranya untuk mengambil nilai bulan dari string tersebut, yakni karakter "09" ?

Contoh lain, katakan NIM seorang mahasiswa terdiri dari 8 digit: "12140001". Dua digit pertama adalah tahun masuk mahasiswa, dua digit berikutnya kode jurusan, dan empat digit terakhir adalah no urut mahasiswa. Bagaimana cara memisahkan digit-digit ini?

Dalam kasus seperti inilah fungsi substr() diperlukan.

Fungsi substr() membutuhkan 2 buah argumen dan 1 argumen tambahan (opsional). Arguman pertama adalah string asal yang ingin diambil nilainya. Argumen kedua berupa posisi awal pemotongan, dan argumen ketiga diisi jumlah karakter yang akan diambil. Argumen kedua dan ketiga bertipe integer dan bisa positif maupun negatif.

PHP membuat penggunaan fungsi substr() dengan 6 kombinasi cara penulisan. Kita akan membahasnya satu persatu.


Cara Mengambil Karakter Dari Awal String

Penggunaan pertama fungsi substr() yang akan kita bahas adalah cara mengambil karakter yang dimulai dari awal string. Berikut contoh penggunaannya:

<?php
$kalimat = "Belajar PHP di Duniailkom";
$sub_kalimat = substr($kalimat,3);
echo $sub_kalimat;
// ajar PHP di Duniailkom
?>

Dalam kode diatas, saya mengambil string $kalimat mulai dari index ke-3. Jika fungsi substr() ditulis dengan 2 argumen seperti ini, dan argumen kedua bernilai positif, maka fungsi substr() akan mengembalikan nilai string $kalimat mulai dari huruf ke-4, yakni huruf "a" hingga akhir string.

Perlu menjadi catatan bahwa index string di dalam PHP dimulai dari angka 0. Sehingga fungsi substr($kalimat,3) akan mengembalikan nilai string $kalimat mulai dari huruf ke-4, dan bukan huruf ke-3.

Agar lebih yakin, anda bisa mencoba kode berikut ini:

<?php
$kalimat = "123456789";
$sub_kalimat = substr($kalimat,3);
echo $sub_kalimat;
// 456789
?>

Fungsi substr() juga memiliki argumen ketiga yang bersifat opsional (boleh diisi atau dikosongkan). Jika kita menambahkan argumen ketiga, nilai ini berfungsi sebagai penentu 'berapa banyak jumlah karakter yang akan  diambil'. Berikut contohnya:

<?php
$kalimat = "Belajar PHP di Duniailkom";
$sub_kalimat = substr($kalimat,8,3);
echo $sub_kalimat;
// PHP
?>

Fungsi substr($kalimat,8,3) akan mengambil string $kalimat mulai dari index ke-8 (karakter ke-9) dan ambil sebanyak 3 karakter.

Kita juga bisa memberikan nilai negatif untuk argumen ke-3 ini, dan fungsinya akan berubah. Berikut contohnya:

<?php
$kalimat = "Belajar PHP di Duniailkom";
$sub_kalimat = substr($kalimat,8,-3);
echo $sub_kalimat;
// PHP di Duniail
?>

Fungsi substr($kalimat,8,-3) akan mengembalikan string $kalimat mulai dari index ke-8 (karakter ke-9) hingga akhir string, kecuali 3 karakter terakhir. 3 karakter terakhir ini adalah "kom", sehingga hasil akhir kode diatas adalah: "PHP di Duniail".

Contoh lainnya, apabila kita ingin mengambil string $kalimat mulai dari index ke-10 hingga akhir string, kecuali 5 karakter terakhir, maka fungsinya adalah: substr($kalimat,10,-5).


Cara Mengambil Karakter Dari Akhir String

Selain dari awal string, kita juga bisa mengambil karakter mulai dari akhir string. Caranya adalah dengan memberikan nilai negatif pada argumen kedua fungsi substr(). Langsung saja kita lihat contoh penggunaannya:

<?php
$kalimat = "Belajar PHP di Duniailkom";
$sub_kalimat = substr($kalimat,-10);
echo $sub_kalimat;
// Duniailkom
?>

Fungsi substr($kalimat,-10) berarti ambil 10 karakter terakhir dari string $kalimat.

Agar lebih spesifik, kita juga bisa menentukan jumlah karakter yang ingin diambil. Ini bisa didapat dengan menambahkan argumen ke-3:

<?php
$kalimat = "Belajar PHP di Duniailkom";
$sub_kalimat = substr($kalimat,-10,5);
echo $sub_kalimat;
// Dunia
?>

Kombinasi terakhir dari fungsi substr() adalah menggunakan angka minus untuk argumen ketiga, seperti contoh berikut:

<?php
$kalimat = "Belajar PHP di Duniailkom";
$sub_kalimat = substr($kalimat,-10,-3);
echo $sub_kalimat;
// Duniail
?>

Fungsi substr($kalimat,-10,-3) berarti ambil 10 karakter terakhir dari string $kalimat, kecuali 3 karakter terakhir, sehingga hasil kode programnya adalah: "Duniail".

Dari beberapa contoh diatas, kita sudah melihat 6 jenis kombinasi penggunaan fungsi substr(). Kombinasi tersebut di dapat dari perbedaan jumlah argumen dan apakah argumen tersebut bertipe positif dan negatif. Sebagai kesimpulan, berikut contoh kode seluruh kombinasi fungsi substr():

<?php
$kalimat = "Belajar PHP di Duniailkom";
echo substr($kalimat,8); // PHP di Duniailkom
echo "<br>";
echo substr($kalimat,8,6); // PHP di
echo "<br>";
echo substr($kalimat,8,-5); // PHP di Dunia
echo "<br>";
echo substr($kalimat,-10); // Duniailkom
echo "<br>";
echo substr($kalimat,-10,5); // Dunia
echo "<br>";
echo substr($kalimat,-10,-3); // Duniail
?>

Pengambilan sebagian nilai string cukup sering kita gunakan. PHP menyediakan fungsi substr() untuk keperluan ini. Dengan 6 kombinasi, fungsi substr() sangat praktis untuk memotong sebuah string atau mengambil sebagian nilai dari sebuah string di dalam PHP.

56 Comments

  1. KampusIT
    26 Dec 15
    • Andre
      26 Dec 15
      • Rasid Azis
        07 Feb 17
        • Andre
          07 Feb 17
  2. sealblack
    01 Feb 16
    • admin
      05 Jul 17
  3. fajar septian
    03 Feb 16
  4. wasis_w
    12 Feb 16
  5. Urek
    16 Mar 16
  6. Anonymous
    20 Apr 16
    • bantu
      31 Jul 17
  7. Anonymous
    25 Apr 16
  8. JODHI
    28 Apr 16
  9. Dimas
    06 May 16
    • Andre
      08 May 16
  10. aissa
    19 Jul 16
    • Andre
      20 Jul 16
  11. Agung
    19 Oct 16
    • Andre
      19 Oct 16
  12. budi
    09 Feb 17
    • Andre
      11 Feb 17
  13. ikbal
    05 Mar 17
    • Andre
      05 Mar 17
  14. ikbal
    06 Mar 17
  15. Andri Wiyasa
    23 Mar 17
  16. irvan
    30 Mar 17
    • Andre
      30 Mar 17
  17. alfin
    05 Apr 17
    • Andre
      06 Apr 17
  18. anggara
    22 Apr 17
    • Andre
      24 Apr 17
  19. Teguhdharmawan
    25 Aug 17
    • Andre
      25 Aug 17
  20. Wind Antara
    09 Dec 17
    • Andre
      11 Dec 17
  21. SAWALUDIN -
    14 Dec 17
  22. tamagawa
    05 Mar 18
  23. dany
    27 Mar 18
  24. Sarkowi
    15 Aug 18
    • Andre
      16 Aug 18
      • Anonymous
        16 Aug 18
  25. Edwin
    13 Sep 18
  26. agus
    08 Oct 18
  27. Nathamael
    11 Oct 18
    • Andre
      11 Oct 18
  28. Rizki Yudha
    17 Jan 19
    • Andre
      17 Jan 19
  29. Geunta Restu Pradana
    23 Sep 20
  30. sultan
    03 Jan 22
  31. Bobi
    03 Oct 22
  32. Syamsul
    17 Mar 24

Add Comment

Leave a Reply to alfin Cancel reply