TELAH DIBUKA !!!

Toko Ebook Tutorial "RosihanAri.Net"


Free Ebook Tutorial from Rosihan Ari's Blog

Tutorial Javascript | Tutorial PHP Dasar | Tutorial AJAX | Tutorial CSS | Tutorial FPDF | Tutorial Wordpress



Slot iklan tersedia, pasang iklan di atas

Ebook yang direkomendasikan untuk Anda
Kunjungi Toko Ebook RosihanAri.Net

Penggunaan Function substring() di Query SQL


July 21st, 2008 | by rosihanari | Cetak Artikel Cetak Artikel

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:

  1. Siapa saja mahasiswa yang berangkatan 97?
  2. Berapa jumlah mahasiswa yang merupakan angkatan 99?
  3. Tampilkan jumlah mahasiswa untuk setiap angkatan.
  4. Tampilkan jumlah mahasiswa dari jurusan yang berkode M01 (dengan asumsi bahwa M0X menunjukkan kode Jurusan)
  5. 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.

Untuk soal terakhir, statement SQL yang Anda buat adalah:

SELECT substring(NIM, 1, 3) as Jurusan, count(*) as Jumlah
FROM mhs
GROUP BY Jurusan

Pembahasan soal No. 5 ini identik dengan No. 3


Baca Juga Artikel Terkait
Penggunaan Subquery dalam Query SQL (Bag. 1)
Penggunaan Subquery dalam Query SQL (Bag. 2)
Mengambil Substring dari Suatu String dengan Function substr()
Tentang Function str_replace()
Perintah SQL untuk Menampilkan Record Random



Slot iklan tersedia, pasang iklan di atas


Kata kunci:


Ada 12 komentar dalam artikel ini.



  1. [...] artikel yang lain tentang substring di SQL telah dibahas sebelumnya. Selanjutnya apakah dapat substring dari suatu string tersebut direlasikan [...]

  2. [...] Function ini digunakan untuk mengambil substring dari suatu string. Contoh penggunaannya dapat Anda baca di Penggunaan Function Substring() di MySQL. [...]

  3. frenz says:

    Bisa ga dipakai untuk mengambil data di tanggal, misalnya 22/11/2008…jadi kita hanya menampilkan 2008 aja

  4. rosihanari says:

    MMm… sebaiknya kalo tipe data date, pake function saja. Contoh:

    SELECT YEAR(’2008-10-01′)

    Perintah di atas akan menghasilkan ’2008′.

    Bisa pula memakai script PHP

    $pecahTanggal = explode(‘/’, ’20/10/2008′);
    $tahun = $pecahTanggal[2];
    echo $tahun;

  5. Yusron Rizqi says:

    wahhhh siiip lah bos
    mudah2 an sukses
    jangan lupa ama mas mu ini :-)

  6. Ligo says:

    Numpang nanya donk,
    Kalo sintaks substring kalo saya mau nampilin string sebelah kanan yg angka 1 dari data di bawah, gimana caranya? mohon bantuannya.

    32451
    23145
    24314
    41442

    saya mau hasilnya jadi seperti ini:

    3245
    23
    243
    4

    bisa gak?

    thx ya ….

  7. deni mulyana says:

    trims yawh atas infonya…
    w copy nih infonya…
    wassalam…

  8. erik setiawan says:

    Mas, untuk tutorial chapta dgn PHP sdh ada / sdh pernah di tulis blm dlm blog ini…?
    Blh donk mas, upload mengenai chapta…

    • rosihanari says:

      @erik setiawan: ada kok mas, tapi saya pake JpGraph untuk mengenerate kode chaptcha nya. coba dicari di blog ini ya..

    • ega says:

      pak..
      saya pake query
      SELECT * FROM pasien WHERE substr(tanggal_perawatan,0,7)=’2013-01′ ORDER BY id

      lalu muncul komentar:MySQL returned an empty result set (i.e. zero rows). ( Query took 0.0018 sec )

      itu kenapa ya pak

    • rosihanari says:

      @ega: berarti memang gak ada hasil query nya.

  9. [...] Anda diberikan data mahasiswa dalam tabel berikut ini. view sourceprint? 01.NIM        NAMA MAHASISWA 02.M0197001   Dwi Amalia Fitriani [...]



 

Komentar/pertanyaan Anda!

Mohon maaf, komentar/pertanyaan yang menggunakan email palsu atau komentar bernada negatif, cemooh, umpatan, cacian atau sejenisnya secara otomatis akan terhapus karena dianggap spam dan tidak akan tampil

Dimohon jangan pula memasukkan code program dalam bentuk apapun ke dalam komentar karena akan dianggap spam.

Mohon maaf jika seandainya ada beberapa pertanyaan Anda yang tidak direspon atau ditanggapi mengingat banyaknya komentar yang masuk dan keterbatasan kemampuan/ilmu saya dalam menjawab pertanyaan satu persatu. Saya harap Anda bisa memahami dan memakluminya.

Semua komentar atau pertanyaan yg masuk tidak akan langsung tampil di halaman ini, karena akan dimoderasi dahulu.


*