- 1 1. Apa Itu Fungsi SUBSTRING?
- 2 2. Penggunaan Dasar Fungsi SUBSTRING
- 3 3. Aplikasi Praktis Fungsi SUBSTRING
- 4 4. Perbandingan dengan Fungsi String Lain
- 5 5. Penggunaan Lanjutan dan Optimasi untuk Fungsi SUBSTRING
- 6 6. Contoh dan Praktik Terbaik untuk Fungsi SUBSTRING
- 7 7. Penanganan Kesalahan dan Perbedaan Versi
1. Apa Itu Fungsi SUBSTRING?
Fungsi SUBSTRING adalah fungsi MySQL penting yang digunakan untuk mengekstrak substring dari sebuah string. Dengan fungsi ini, Anda dapat mengambil hanya bagian yang Anda butuhkan dari data yang disimpan dalam basis data. Misalnya, fungsi ini berguna ketika Anda ingin mengekstrak bagian domain dari alamat email pengguna, atau mengambil bagian tertentu dari kode produk.
1.1 Sintaks Dasar
Sintaks dasar fungsi SUBSTRING adalah sebagai berikut:
SUBSTRING(str, pos)
SUBSTRING(str, pos, len)
str: String yang akan diekstrak.pos: Posisi awal (dimulai dari 1).len: Jumlah karakter yang akan diekstrak (opsional).
Jika pos bernilai positif, MySQL menghitung maju dari awal string. Jika bernilai negatif, MySQL menghitung mundur dari akhir string. Jika len dihilangkan, MySQL mengekstrak dari posisi yang ditentukan hingga akhir string.
1.2 Kasus Penggunaan Fungsi SUBSTRING
Fungsi ini digunakan untuk memformat data string dan mengekstrak bagian tertentu, sehingga memudahkan pencarian dan pemrosesan informasi secara efisien dalam basis data.
2. Penggunaan Dasar Fungsi SUBSTRING
Untuk memahami dasar-dasarnya, mari lihat beberapa contoh sederhana.
2.1 Mengekstrak Bagian dari String
Query berikut mengekstrak 6 karakter mulai dari karakter ke-3 dari string “Hello, World!”.
SELECT SUBSTRING('Hello, World!', 3, 6);
Hasilnya adalah "llo, W". Karena pos adalah 3, ekstraksi dimulai dari karakter ke-3, dan karena len adalah 6, 6 karakter diekstrak.
2.2 Mengabaikan Parameter Panjang
Jika Anda mengabaikan len, MySQL mengekstrak dari posisi yang ditentukan hingga akhir string.
SELECT SUBSTRING('Hello, World!', 8);
Hasilnya adalah "World!", yang mengambil semua karakter mulai dari karakter ke-8 hingga akhir.
2.3 Menggunakan Posisi Negatif
Jika Anda menggunakan nilai negatif, Anda dapat menentukan posisi dari akhir string.
SELECT SUBSTRING('Hello, World!', -5);
Query ini mengembalikan "orld!", mengekstrak 5 karakter terakhir.
3. Aplikasi Praktis Fungsi SUBSTRING
Fungsi SUBSTRING sering digunakan dalam operasi data dunia nyata. Berikut beberapa contoh praktis.
3.1 Mengekstrak Domain dari Alamat Email
Dengan menggabungkan SUBSTRING dengan LOCATE, Anda dapat mengekstrak bagian domain dari sebuah alamat email.
SELECT email, SUBSTRING(email, LOCATE('@', email) + 1) AS domain FROM users;
Query ini mengekstrak string setelah “@” dan mengembalikan hanya bagian domain.
3.2 Mengekstrak Bagian dari Kode Produk
Contoh ini mengekstrak bagian tertentu dari kode produk.
SELECT product_code, SUBSTRING(product_code, 5, 4) AS product_id FROM products;
Dalam query ini, 4 karakter mulai dari karakter ke-5 dari kode produk diekstrak dan ditampilkan sebagai kolom baru bernama product_id.
3.3 Menggunakannya dalam Subquery
Dengan menggabungkannya dengan subquery, Anda dapat mengekstrak data dengan kondisi yang lebih kompleks.
SELECT id, SUBSTRING(description, 1, 10) AS short_desc FROM (SELECT * FROM products WHERE category = 'Electronics') AS sub;
Query ini mengekstrak 10 karakter pertama dari description pada produk yang category-nya adalah ‘Electronics’.

4. Perbandingan dengan Fungsi String Lain
Fungsi lain yang dapat digunakan untuk tujuan serupa dengan SUBSTRING meliputi LEFT, RIGHT, dan SUBSTR.
4.1 Fungsi LEFT dan RIGHT
LEFT(str, len): Mengambil sejumlah karakter yang ditentukan dari awal string.RIGHT(str, len): Mengambil sejumlah karakter yang ditentukan dari akhir string.SELECT LEFT('Hello, World!', 5); -- "Hello" SELECT RIGHT('Hello, World!', 6); -- "World!"
Fungsi-fungsi ini nyaman ketika Anda ingin mengekstrak substring dari awal atau akhir string.
4.2 Fungsi SUBSTR
SUBSTR adalah alias untuk SUBSTRING, sehingga dapat digunakan dengan cara yang sama.
SELECT SUBSTR('Hello, World!', 8); -- "World!"
Kueri ini mengembalikan "World!", sama seperti SUBSTRING.
5. Penggunaan Lanjutan dan Optimasi untuk Fungsi SUBSTRING
Bagian ini menjelaskan penggunaan yang lebih lanjutan dan teknik optimasi.
5.1 Optimasi Kinerja
Menggunakan SUBSTRING pada dataset yang besar dapat memengaruhi kinerja. Jika diperlukan, buat indeks dan periksa rencana eksekusi kueri. Juga, jika Anda sering mengekstrak substring yang sama, pertimbangkan untuk menyimpan hasilnya dalam cache.
5.2 Menggunakannya dalam Klausa WHERE
Anda dapat menggunakan SUBSTRING dalam klausa WHERE untuk menyaring catatan berdasarkan kondisi substring.
SELECT * FROM products WHERE SUBSTRING(product_code, 1, 3) = 'ABC';
Kueri ini mencari produk di mana 3 karakter pertama dari product_code adalah ‘ABC’.
6. Contoh dan Praktik Terbaik untuk Fungsi SUBSTRING
Berikut adalah contoh praktis penggunaan SUBSTRING dan praktik terbaik untuk pekerjaan nyata.
6.1 Kode Contoh
Contoh berikut memisahkan nama lengkap pelanggan menjadi nama depan dan nama belakang.
SELECT name, SUBSTRING(name, 1, LOCATE(' ', name) - 1) AS first_name,
SUBSTRING(name, LOCATE(' ', name) + 1) AS last_name
FROM customers;
Dalam kueri ini, nama depan dan nama belakang diekstrak dari nama lengkap yang dipisahkan oleh spasi.
6.2 Praktik Terbaik
- Ekstrak hanya apa yang Anda butuhkan : Jaga panjang substring sekecil mungkin untuk mengurangi dampak kinerja.
- Perhatikan tipe data : Jika Anda menerapkan
SUBSTRINGpada data numerik, Anda mungkin perlu mengubahnya secara eksplisit menjadi string. - Pertimbangkan penggunaan indeks : Saat menggunakan
SUBSTRINGdalam klausaWHERE, indeks mungkin tidak digunakan secara efektif, jadi perhatikan kinerja kueri dengan cermat.
7. Penanganan Kesalahan dan Perbedaan Versi
Bagian ini membahas penanganan kesalahan saat menggunakan SUBSTRING dan perbedaan antar versi MySQL.
7.1 Penanganan Kesalahan
Jika posisi yang ditentukan berada di luar rentang string, SUBSTRING mengembalikan string kosong. Karena ini bukan kesalahan, disarankan menambahkan logika untuk memvalidasi hasil sebelumnya bila diperlukan.
7.2 Perbedaan Versi
Tergantung pada versi MySQL, perilaku fungsi SUBSTRING dapat berbeda. Misalnya, beberapa versi lama mungkin menangani karakter multibita secara berbeda. Periksa kompatibilitas antar versi dan terapkan langkah yang tepat bila diperlukan.


