Penggunaan Substring dan Instring dalam SQL Oracle



Penggunaan Substring dan Instring Dalam SQL Oracle
 

     Salah satu fitur yang lumayan penting dan sering digunakan dalam script pengolahan data adalah substring dan instring. Karena memang, keduanya cukup 'mahir' dalam melakukan manipulasi atau untuk 'mengakali' data, terutama jika menyangkut dengan hasil yang berformat string. Sebenarnya, apa sih inti dari dua syntax tersebut?

SUBSTRING 
 
     Substring merupakan fungsi yang menghasilkan value berupa string dengan jumlah tertentu, sesuai dengan porsi yang ditentukan oleh programmer.
Syntax :
     substr(string, posisi_awal, jumlah_string yang diambil dari posisi_awal)
Penggunaan, misalkan kita ingin menampilkan nama pegawai kita, tapi hanya 10 huruf depannya, atau menampilkan nama dari kata ke 2,3 dan sebagainya.
Contoh :
     substr('John Herman',1,4)
Nah, perintah di atas, berarti akan memunculkan value dari John Herman, dari huruf pertama, dengan panjang 4 huruf dari yang pertama tadi. Maka menghasilkan result John.
     substr('John Herman',6,6)
Kalau yang ini, perhatikan baik-baik bilangan 6 setelah tulisan John Herman. Berarti pengambilan karakter dimulai dari yang ke-6, yaitu H. (Spasi juga dihitung karakter ya.. jadinya terbaca.)
Sampai dengan jumlah 6 karakter setelahnya. Maka outputnya adalah Herman.

INSTRING

     Nah, kalo instring, agak beda. Tapi menurutku, merupakan pasangan sejoli substring. Hehehe... karena biasanya dua syntax ini sering aku combo untuk hasil menggelegar. Uh, lebay... Instring berfungsi untuk melakukan pencarian posisi suatu string. Hasilnya bukan berupa string, namun numeric. Simpelnya, mencari posisi karakter X ada pada urutan berapa.
Syntax :
     instr(string, karakter/kata yang dicari, posisi awal pencarian, kata/karakter ke-berapa)
Uhmm, agak ribet. Tenang, santai aja kok.
Contohnya berikut :
     instr('John Herman','J',1,1)
     Jika diterjemahkan, kita mencari string 'J' pada kata 'John Herman'. Kemudian, angka 1 yang awal, bermakna kita mencari dari karakter terdepan. Paling awal. Jadi instr akan memproses atau menghitung proses pencarian dari awal, dimulai dari J o h n H e r m a n. Urut dari yang pertama. Kemudian, 1 yang kedua, artinya kita mencari kata 'J'  pertama. Ingat, J yang pertama kali muncul.
Maka result value adalah 1. Karena kata J yang pertama sudah muncul di bilangan pertama.
Contoh lain :
     instr('John Herman','n',1,2)
Kalau yang ini, mencari kata n dari John Herman, dari bilangan pertama. 
Dimana kata n yang dicari adalah kata n kedua. Ingat, kedua.
Result value yang muncul yaitu 11.
Karena n pertama ada di no.4
Dan n kedua ada di paling buncit(11). Mulai paham 'kan?
Oh, iya. Instring tidak hanya bisa memulai pencarian dari depan saja lho. Kita bisa membaliknya. Kita pakai example n tadi lagi.
     instr('John Herman','n',-1,2)
Lihat, lihat. Sekarang kok ada tanda negatif di depan 1? Tak usah bingung lama-lama. Dengan ini, maka pencarian n yang kedua tadi, dilakukan dari belakang, alias terbalik. Benar, tanda - (negatif) berarti membuat pengurutan pencarian dimulai dari belakang.
Maka result value adalah 4.  
n pertama dari belakang adalah no.11.
n kedua dari belakang adalah no.4. 
Meski dimulai dari belakang, tapi penghitungan tetap dari depan. Ingatlah akan hal itu. Hehehe...
Benar juga, bila string yang dicari tidak ada, maka nilai baliknya adalah 0.
     Sebagai programmer database yang berhubungan langsung dengan pengolahan data, tentu kita harus jeli dan kreatif dalam membuat program. Terkadang, kita pun juga memerlukan langkah-langkah anomali untuk melakukannya. Penggabungan instring dan subtring pun pada awalnya tak berniat kucoba. Namun, karena kondisi mendesak, dan permintaan dari pengguna yang menginginkan data tampil sedemkian rupa. Mau tidak mau, kita harus mengakali dan mengotak-atik dengan menjoinkan fungsi subtring dan instring ini. Yup, yup...

Insya Allah, semoga sedikit penjelasan ini dapat membantu!

1 Response to "Penggunaan Substring dan Instring dalam SQL Oracle"