mysql string function concat length upper lower substring | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: mysql string function concat length upper lower substring

Tuesday, April 7, 2026

mysql string function concat length upper lower substring

๐Ÿ  Beranda Tutorial MySQL Artikel 18
๐ŸŸก Menengah ๐Ÿ—„️ Fungsi String ⏱️ 8 Menit Baca ๐Ÿ“š Seri 18/28

Fungsi String MySQL:
CONCAT, LENGTH, UPPER,
LOWER & SUBSTRING

Kuasai manipulasi teks di MySQL — dari menggabungkan nama hingga memformat data pelanggan — dengan 5 fungsi string yang wajib kamu tahu.

5
Fungsi SQL
12+
Contoh Query
8'
Menit Baca

Pernah nggak kamu menerima kiriman data dari tim lain, dan isinya berantakan banget? Nama produk ada yang huruf kapital semua, ada yang huruf kecil semua, bahkan ada yang dicampur asal-asalan. Sebagai orang yang harus mengolah data itu di database, kamu mau nangis ๐Ÿ˜ญ. Nah, di sinilah fungsi string MySQL hadir jadi penyelamat hidupmu!

Di artikel ke-18 dari seri 28 artikel Belajar Query SQL MySQL ini, kita akan bahas 5 fungsi string MySQL yang paling sering dipakai: CONCAT, LENGTH, UPPER, LOWER, dan SUBSTRING. Kelima fungsi ini adalah senjata andalan untuk memanipulasi dan memformat data teks langsung di dalam query — tanpa perlu buka Excel, tanpa perlu tulis kode Python dulu.

Kita akan praktik langsung menggunakan database toko online dengan tabel produk, pelanggan, dan pesanan. Jadi setiap contoh terasa nyata dan langsung bisa kamu adaptasi ke project kamu sendiri. Siap? Let's go! ๐Ÿš€

๐Ÿ’ก
Fakta Menarik

Menurut survei Stack Overflow Developer Survey, MySQL adalah database paling populer di dunia selama beberapa tahun berturut-turut. Dan di antara semua tipe fungsi MySQL, fungsi string adalah yang paling sering digunakan oleh developer dalam query sehari-hari — bahkan lebih sering dari fungsi agregasi seperti SUM dan COUNT!

๐Ÿ›’ Setup: Data Toko Online Kita

Sebelum masuk ke fungsi-fungsinya, kita buat dulu tabel dan data sampelnya. Kita akan pakai tabel produk dan pelanggan dengan data yang sengaja dibuat "kotor" supaya kita bisa latihan membersihkannya.

-- Buat tabel produk
CREATE TABLE produk (
  id_produk   INT PRIMARY KEY,
  nama_produk VARCHAR(100),
  kategori    VARCHAR(50),
  harga       DECIMAL(10,2)
);

-- Isi data (nama sengaja campur huruf besar-kecil)
INSERT INTO produk VALUES
(1, 'sepatu running ADIDAS',  'olahraga', 450000),
(2, 'KAOS POLO ralph lauren', 'fashion',  320000),
(3, 'tas ransel eiger',       'outdoor',  580000),
(4, 'jam tangan casio',       'aksesori', 275000),
(5, 'SEPATU BOOT safety',     'industri', 390000);

-- Buat tabel pelanggan
CREATE TABLE pelanggan (
  id_pelanggan INT PRIMARY KEY,
  nama_depan   VARCHAR(50),
  nama_belakang VARCHAR(50),
  email        VARCHAR(100),
  kota         VARCHAR(50)
);

INSERT INTO pelanggan VALUES
(1, 'budi',    'santoso',  'budi.s@gmail.com',    'Surabaya'),
(2, 'DEWI',    'RAHAYU',   'dewi.r@yahoo.com',    'Jakarta'),
(3, 'Ahmad',   'Fauzi',    'ahmad.f@gmail.com',   'Bandung'),
(4, 'siti',    'NURHALIZA','siti.n@hotmail.com',  'Medan'),
(5, 'RIZKY',   'pratama',  'rizky.p@gmail.com',   'Yogyakarta');

๐Ÿ”— 1. CONCAT — Menggabungkan Teks

Bayangkan kamu punya dua lembar kertas, satu berisi nama depan, satu lagi nama belakang. Fungsi fungsi string MySQL CONCAT() ibarat lem kertas — ia menempelkan dua atau lebih string menjadi satu. Simpel tapi powerful banget!

-- Sintaks dasar CONCAT
CONCAT(string1, string2, string3, ...)

-- Contoh: gabungkan nama depan + spasi + nama belakang
SELECT
  id_pelanggan,
  CONCAT(nama_depan, ' ', nama_belakang) AS nama_lengkap,
  email,
  kota
FROM pelanggan;

๐Ÿ“Š Hasil Query:

id_pelanggan nama_lengkap email kota
1budi santosobudi.s@gmail.comSurabaya
2DEWI RAHAYUdewi.r@yahoo.comJakarta
3Ahmad Fauziahmad.f@gmail.comBandung
4siti NURHALIZAsiti.n@hotmail.comMedan
5RIZKY pratamarizky.p@gmail.comYogyakarta
๐Ÿ’Ž Tip Praktis

Kalau salah satu value-nya NULL, hasil CONCAT juga jadi NULL! Gunakan CONCAT_WS(separator, str1, str2) sebagai alternatif — fungsi ini secara otomatis mengabaikan nilai NULL dan lebih aman untuk production.

-- Membuat label produk: "Rp 450.000 | sepatu running ADIDAS"
SELECT
  nama_produk,
  CONCAT('Rp ', FORMAT(harga, 0, 'id_ID'), ' | ', kategori) AS label_produk
FROM produk;

๐Ÿ“ 2. LENGTH & CHAR_LENGTH — Mengukur Panjang Teks

Analoginya gampang: kalau kamu mau tahu berapa meter panjang pita pembungkus hadiah, kamu butuh penggaris. Nah, LENGTH() adalah "penggaris" untuk string di MySQL — ia menghitung jumlah byte, sedangkan CHAR_LENGTH() menghitung jumlah karakter.

⚠️ Penting Diketahui

Untuk teks berbahasa Indonesia yang menggunakan karakter UTF-8, LENGTH() bisa memberi hasil berbeda dari CHAR_LENGTH(). Contoh: karakter "รฉ" adalah 1 karakter tapi 2 byte. Gunakan CHAR_LENGTH() untuk kebutuhan validasi panjang teks yang lebih akurat.

-- Hitung panjang nama produk + filter nama yang terlalu panjang
SELECT
  id_produk,
  nama_produk,
  CHAR_LENGTH(nama_produk)  AS jumlah_karakter,
  LENGTH(nama_produk)       AS jumlah_byte
FROM produk
ORDER BY jumlah_karakter DESC;

๐Ÿ“Š Hasil Query:

id_produk nama_produk jumlah_karakter jumlah_byte
2KAOS POLO ralph lauren2222
5SEPATU BOOT safety1919
1sepatu running ADIDAS2121
3tas ransel eiger1616
4jam tangan casio1616

๐Ÿ”ก 3. UPPER & LOWER — Standarisasi Huruf Besar/Kecil

Ini adalah fungsi string MySQL yang paling sering jadi "pemadam kebakaran" di dunia nyata. Coba bayangkan kamu punya tabel pelanggan yang data nama-nya campur aduk — ada yang nulis "BUDI", ada "budi", ada "Budi". Tanpa UPPER/LOWER, kamu akan punya masalah besar saat melakukan pencarian atau pencocokan data.

UPPER() mengubah semua karakter jadi HURUF KAPITAL, sementara LOWER() mengubah semuanya jadi huruf kecil. Sesederhana itu, tapi dampaknya luar biasa untuk konsistensi data.

-- Standarisasi nama produk: semua jadi huruf besar
SELECT
  id_produk,
  nama_produk                     AS nama_asli,
  UPPER(nama_produk)              AS nama_upper,
  LOWER(nama_produk)              AS nama_lower
FROM produk;

-- Kasus nyata: pencarian tidak peduli huruf besar/kecil
SELECT * FROM produk
WHERE LOWER(nama_produk) LIKE '%sepatu%';

๐Ÿ“Š Hasil Query (UPPER & LOWER):

id_produk nama_asli nama_upper nama_lower
1sepatu running ADIDASSEPATU RUNNING ADIDASsepatu running adidas
2KAOS POLO ralph laurenKAOS POLO RALPH LAURENkaos polo ralph lauren
3tas ransel eigerTAS RANSEL EIGERtas ransel eiger
4jam tangan casioJAM TANGAN CASIOjam tangan casio
5SEPATU BOOT safetySEPATU BOOT SAFETYsepatu boot safety
✅ Tips & Insight

Jangan langsung UPDATE data asli di tabel! Gunakan UPPER/LOWER di query SELECT dulu untuk preview hasilnya. Kalau sudah yakin, baru jalankan UPDATE produk SET nama_produk = UPPER(nama_produk) untuk mengubah data permanen. Selalu backup dulu sebelum mass update!

✂️ 4. SUBSTRING — Memotong Teks

Kalau CONCAT adalah "lem", maka SUBSTRING() adalah "gunting". Fungsi ini memotong dan mengambil sebagian teks dari posisi tertentu. Sangat berguna untuk mengekstrak kode produk, inisial nama, domain email, dan masih banyak lagi.

-- Sintaks SUBSTRING
SUBSTRING(string, posisi_awal, panjang)
--          ↑         ↑           ↑
--        teks    mulai di     ambil berapa
--                karakter ke- karakter

-- Contoh: ambil 3 huruf pertama nama kategori sebagai kode
SELECT
  id_produk,
  nama_produk,
  kategori,
  UPPER(SUBSTRING(kategori, 1, 3))   AS kode_kategori,
  SUBSTRING(nama_produk, 1, 10)      AS nama_singkat
FROM produk;

-- Ekstrak domain dari email pelanggan
SELECT
  nama_depan,
  email,
  SUBSTRING(email, LOCATE('@', email) + 1)  AS domain_email
FROM pelanggan;

๐Ÿ“Š Hasil Query (kode kategori + nama singkat):

id_produk nama_produk kategori kode_kategori nama_singkat
1sepatu running ADIDASolahragaOLAsepatu run
2KAOS POLO ralph laurenfashionFASKAOS POLO
3tas ransel eigeroutdoorOUTtas ransel
4jam tangan casioaksesoriAKSjam tangan
5SEPATU BOOT safetyindustriINDSEPATU BOO

๐Ÿงช Panduan Praktikum: Query Kombinasi Fungsi String MySQL

Sekarang kita gabungkan semua fungsi dalam satu skenario nyata: membuat laporan kartu pelanggan yang rapi dan terstandarisasi. Ikuti langkah-langkah berikut satu per satu.

1

Buat nama lengkap terstandar (Title Case)

Gabungkan nama depan dan belakang dengan CONCAT, lalu konversi ke UPPER untuk konsistensi.

-- Langkah 1: Nama lengkap dalam huruf kapital semua
SELECT
  id_pelanggan,
  UPPER(CONCAT(nama_depan, ' ', nama_belakang)) AS nama_lengkap
FROM pelanggan;
2

Buat kode ID pelanggan dari inisial + ID

Kombinasi SUBSTRING dan CONCAT untuk membuat kode unik pelanggan.

-- Langkah 2: Kode pelanggan = "PLG-" + inisial + ID
SELECT
  id_pelanggan,
  CONCAT(
    'PLG-',
    UPPER(SUBSTRING(nama_depan, 1, 1)),
    UPPER(SUBSTRING(nama_belakang, 1, 1)),
    LPAD(id_pelanggan, 3, '0')
  ) AS kode_pelanggan,
  nama_depan, nama_belakang
FROM pelanggan;
3

Standarisasi email ke huruf kecil

Email selalu lowercase — cegah duplikasi data dengan LOWER().

-- Langkah 3: Email distandarkan ke lowercase
SELECT
  id_pelanggan,
  LOWER(email)               AS email_standar,
  CHAR_LENGTH(email)         AS panjang_email
FROM pelanggan
WHERE CHAR_LENGTH(email) BETWEEN 10 AND 50;
4

Gabungkan semua: Query Kartu Pelanggan Final

Ini dia query pamungkasnya — semua fungsi digabung dalam satu SELECT!

-- Langkah 4: Laporan kartu pelanggan lengkap
SELECT
  CONCAT(
    'PLG-',
    UPPER(SUBSTRING(nama_depan, 1, 1)),
    UPPER(SUBSTRING(nama_belakang, 1, 1)),
    LPAD(id_pelanggan, 3, '0')
  )                                             AS kode_pelanggan,
  UPPER(CONCAT(nama_depan, ' ', nama_belakang)) AS nama_lengkap,
  LOWER(email)                                  AS email,
  UPPER(kota)                                   AS kota,
  CHAR_LENGTH(
    CONCAT(nama_depan, ' ', nama_belakang)
  )                                             AS panjang_nama
FROM pelanggan
ORDER BY nama_depan ASC;

๐Ÿ“‹ Tabel Ringkasan: 5 Fungsi String MySQL

Berikut ringkasan lengkap kelima fungsi string MySQL yang sudah kita pelajari hari ini. Jadikan ini sebagai cheat sheet kamu!

Fungsi Kegunaan Contoh Penggunaan Return Value
CONCAT() Menggabungkan 2+ string CONCAT('A', ' ', 'B') 'A B'
LENGTH() Hitung jumlah byte LENGTH('Halo') 4
CHAR_LENGTH() Hitung jumlah karakter CHAR_LENGTH('Halo') 4
UPPER() Ubah ke huruf kapital UPPER('halo') 'HALO'
LOWER() Ubah ke huruf kecil LOWER('HALO') 'halo'
SUBSTRING() Potong/ambil sebagian teks SUBSTRING('Halo',1,2) 'Ha'
๐Ÿง  Tips dari Lapangan #1

Jangan takut nesting fungsi! Di MySQL, kamu bisa menaruh fungsi di dalam fungsi, seperti UPPER(SUBSTRING(nama, 1, 1)). Ini sangat powerful. Tapi jangan berlebihan — kalau sudah lebih dari 3 level nesting, pertimbangkan untuk memecah query jadi beberapa langkah atau pakai subquery agar tetap mudah dibaca.

๐Ÿ”ฅ Tips dari Lapangan #2

Fungsi string di WHERE clause bisa memperlambat query! Ketika kamu menggunakan WHERE LOWER(email) = 'budi@gmail.com', MySQL tidak bisa memanfaatkan index pada kolom email secara optimal. Solusinya: simpan data yang sudah distandarkan sejak awal, atau gunakan functional index di MySQL 8.0+. Performa database sama pentingnya dengan kebenaran hasil query!

๐ŸŽฏ Kesimpulan

Kita sudah menjelajahi 5 fungsi string MySQL yang wajib ada di toolkit kamu:

  • CONCAT() — menggabungkan string, cocok untuk membuat label, nama lengkap, atau kode unik
  • LENGTH() & CHAR_LENGTH() — mengukur panjang teks, penting untuk validasi input
  • UPPER() — standarisasi ke huruf kapital, ideal untuk kode dan header
  • LOWER() — standarisasi ke huruf kecil, wajib untuk email dan username
  • SUBSTRING() — mengambil potongan teks dari posisi tertentu, serbaguna untuk ekstraksi data

Ingat ya, data yang kotor dan tidak konsisten adalah musuh nyata seorang data engineer dan developer. Dengan menguasai fungsi string MySQL ini, kamu sudah punya "senjata" untuk membersihkan dan memformat data langsung di level database — lebih efisien, lebih cepat, dan lebih profesional! ๐Ÿ’ช

๐Ÿ‘‡ Yuk ikut diskusi!

Ada fungsi string MySQL favorit kamu yang belum kita bahas? Atau punya kasus unik saat membersihkan data di project kamu? Ceritakan di kolom komentar! Jangan lupa share artikel ini ke teman sekelas yang lagi belajar MySQL juga. Makin banyak yang belajar bareng, makin seru! ๐Ÿš€

๐Ÿ’ฌ Tinggalkan Komentar ๐Ÿ“Œ Bookmark Artikel Ini
๐Ÿ“š Artikel Selanjutnya dalam Seri

Artikel 19/28: Fungsi Date & Time MySQL — NOW, DATE_FORMAT, DATEDIFF

Setelah mahir memanipulasi teks, saatnya kuasai tanggal dan waktu! Di artikel berikutnya kita akan belajar cara menghitung umur data, memformat tanggal pesanan, dan mencari transaksi berdasarkan rentang waktu.

Baca Artikel Berikutnya →
Tags: MySQL SQL Database Query Tutorial fungsi string MySQL Toko Online Pemula

No comments:

Post a Comment

saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux