Pada artikel ini, akan dibahas bagaimana mengambil substring dalam suatu string dari data menggunakan statement SQL. Untuk mempermudah pembahasan, kita akan mengambil studi kasus, lagi-lagi tentang data mahasiswa.
Misalkan Anda diberikan data mahasiswa dalam tabel berikut ini.
NIM NAMA MAHASISWA M0197001 Dwi Amalia Fitriani M0197002 Faza Fauzan Khosiyarrohman M0198002 Nada Hasanah M0199003 Rosihan Ari Yuana M0199005 Ismail Hasan M0199006 Yusron Rizqi M0297003 Yohana Dwi Ariyanto M0298004 Subari M0298005 Rusmini
Kemudian Anda ingin menjawab pertanyaan berikut ini:
- Siapa saja mahasiswa yang berangkatan 97?
- Berapa jumlah mahasiswa yang merupakan angkatan 99?
- Tampilkan jumlah mahasiswa untuk setiap angkatan.
- Tampilkan jumlah mahasiswa dari jurusan yang berkode M01 (dengan asumsi bahwa M0X menunjukkan kode Jurusan)
- Tampilkan jumlah mahasiswa untuk setiap jurusan (M01 dan M02)
Kalau Anda perhatikan data di atas, tidak tercantum field ANGKATAN. Haruskah field tersebut ada? Ternyata tidak harus. Untuk mendapatkan angkatan mahasiswa, Anda cukup mengambil informasi dari NIM mahasiswanya. Bagaimana caranya?
Tahun angkatan mahasiswa dapat dilihat pada bagian NIM, yaitu mulai pada karakter ke 4 s/d 5, sebagai contoh NIM M0197001 memiliki tahun angkatan 97. Dengan menggunakan function substring() pada SQL, Anda dapat memperoleh tahun angkatan mahasiswa tersebut.
Sekarang kita akan menjawab soal No 1.
Statement SQL untuk menjawab soal ini adalah:
SELECT * FROM mhs WHERE substring(NIM, 4, 2) = '97';
Maksud dari perintah substring(NIM, 4, 2) pada query di atas adalah mencari karakter 4 dan 5 dari field NIM yang sama dengan ’97’. Maksud parameter 2 pada function tersebut menunjukkan jumlah karakter yang akan dicek (mulai dari karakter ke 4).
Selanjutnya akan kita bahas soal No. 2
Statement untuk query ini adalah:
SELECT count(*) FROM mhs WHERE substring(NIM, 4, 2) = '99';
Saya kira penjelasan dari query ini hampir sama dengan No. 1
Untuk No. 3, statement SQL nya adalah:
SELECT substring(NIM, 4, 2) as Angkatan, Count(*) FROM mhs GROUP BY Angkatan;
Pada soal No. 1 dan 2, function substring() terletak di bagian WHERE, sedangkan pada soal No. 3 ini, substring() terletak di klausa SELECT. Hal ini tidak ada masalah. Karena kita akan menampilkan tahun angkatan, maka berikan substring(NIM, 4, 2) di bagian SELECT. Selanjutnya tahun angkatan ini kita buat alias untuk melakukan grouping ketika melakukan perhitungan jumlah mahasiswa setiap angkatan.
Sedangkan untuk soal No. 4, statement SQL nya adalah:
SELECT count(*) FROM mhs WHERE substring(NIM, 1, 3) = 'M01';
Mengapa menggunakan substring(NIM, 1, 3)? Ya… karena untuk kode jurusan ini memiliki 3 karakter yang diawali mulai dari karakter pertama dari NIM.
SQL (Structured Query Language) merupakan bahasa yang paling umum digunakan dan populer karena penggunaannya yang fleksibel dan mudah untuk dipelajari. Tidak hanya itu, SQL menjadi salah satu bahasa yang mudah untuk bisa diakses dan bisa digunakan oleh multiuser dengan kedalaman kompleks yang memungkinkan pengguna untuk melakukan analisis data.
Jika kamu baru memasuki bidang Data Science, SQL menjadi pilihan yang tepat untuk memulai perjalananmu untuk mengekstrak wawasan database. Karena fungsinya yang digunakan untuk pembuatan hingga modifikasi data yang ada di database, SQL dilengkapi dengan banyak sekali fungsi. Mulai dari fungsi untuk numerik, teks hingga agregasi tersedia di SQL.
Concat dan Substring merupakan contoh fungsi yang ada di SQL. Kedua fungsi ini akan banyak digunakan untuk menggabungkan dan memecah data yang berbentuk string. Dalam artikel ini akan dibahas cara penggunaan kedua fungsi ini yang bisa dimanfaatkan dengan menggunakan SQL. Caranya gimana? Yuk, simak pembahasan berikut!
1. Memecah Data dengan Fungsi SUBSTRING
Fungsi String SQL yang pertama adalah SUBSTRING(). Fungsi ini digunakan untuk memecah string menjadi substring. Fungsi ini membutuhkan 2 argumen utama dan 1 argumen tambahan (opsional). Berikut syntax dasarnya:
SUBSTRING (nama_kolom, index_awal, jumlah_karakter)Keterangan:
nama_kolom, adalah nama kolom tabel yang akan diambil karakternya (sebagai sumber string)
index_awal, diisi dengan angka yang berfungsi sebagai index awal karakter yang ingin diambil, dihitung dari index 1 pada karakter pertama, index 2 pada karakter kedua, dan seterusnya. Jika diinput dengan nilai negatif, index akan dihitung mulai dari akhir string.
jumlah_karakter, adalah argumen opsional yang jika tidak ditulis, fungsi SUBSTRING akan mengambil seluruh karakter hingga akhir string. Jika ditulis, maka ini berfungsi sebagai batasan jumlah karakter yang akan diambil.
Contoh:
Misalkan kita memiliki tabel barang berisikan data kode barang seperti berikut,
NO
KodeBarang
1
AB1234
2
BC1567
3
CD0234
4
AB3456
Baca juga : Saatnya Belajar SQL, Kenali Rekomendasi Query SQL Bagi Pemula
2. Contoh Penggunaan Fungsi SUBSTRING
Dari tabel Kode Barang di atas, misalkan kita ingin mengetahui berapa jumlah barang yang kodenya berawalan AB. Maka perintah SQL yang harus diberikan adalah:
SELECT Count(*) FROM barang WHERE SUBSTRING(KodeBarang,1,2)='AB'Atau, kita ingin menampilkan data dengan kode barang tanpa dua huruf di depannya, maka perintahnya adalah:
SELECT KODEBARANG FROM barang;SELECT SUBSTRING(KodeBarang,3,4) FROM barang;
+--------------------------+
| SUBSTRING(KodeBarang,3,4)|
+--------------------------+
| 1234 |
| 1567 |
| 0234 |
| 3456 |
+--------------------------+
3. Menggabungkan Data dengan Fungsi CONCAT
Fungsi SQL selanjutnya adalah CONCAT() singkatan dari Concatenating. Fungsi ini berkebalikan dengan SUBSTRING() yaitu bertujuan untuk menggabungkan beberapa string menjadi satu buah string utuh. Penulisan syntax dasar dari fungsi CONCAT:
**dengan catatan, jika salah satu string diisi dengan NULL, maka output yang dihasilkan adalah NULL.
4. Contoh Penggunaan Fungsi CONCAT
Contoh penggunaan fungsi CONCAT adalah misalkan kita memiliki tabel kode seperti berikut.
KodeHuruf
KodeAngka
AB
1234
BC
1567
CD
0234
AB
3456
Kemudian, kita ingin menggabungkan langsung kedua kolom yang ada dengan fungsi CONCAT() SQL. Perintahnya adalah berikut:
SELECT CONCAT(KodeHuruf,KodeAngka) FROM kode+----------------------------+
| CONCAT(KodeHuruf,KodeAngka)|
+----------------------------+
| AB1234 |
| BC1567 |
| CD0234 |
| AB3456 |
+----------------------------+
Baca juga : Catat! Ini 3 Keuntungan Belajar SQL dalam Mengolah Data
Masih banyak variasi query SQL selain CONCAT maupun query-query lain yang sangat berguna menunjang pengerjaan database. Sudah siap menguasai SQL? Yuk selesaikan modul Fundamental SQL: INNER JOIN dan modul SQL lainnya di DQLab.
Ragu karena tidak memiliki background IT? Jangan khawatir, kamu tetap bisa menguasai SQL dan Ilmu Data Science untuk siap berkarir di revolusi industri 4.0. Bangun proyek dan portofolio datamu bersama DQLab. Sign Up atau isi form dibawah ini sekarang untuk mulai belajar data di DQLab.id!