Memecah (Split) Teks Dengan VB.Net

Programming merupakan sesuatu yang logis dan teknis, tetapi terkadang merupakan suatu akal-akalan programmer untuk memecahkan masalah. Contoh saja kasus registrasi kartu seluler via sms seperti: REG(NIK KTP)#NomorKK# Contoh sms yang dikirim: REG 5104252536525252#510458585588888# Dari permasalah tersebut, tentu saja aplikasi yang menerima harus mampu membaca bahwa:
  • Itu adalah kode registrasi yang valid
  • Mampu membaca nomor KTP
  • Mampu membaca nomor KK
  • Selanjutnya melalui database, mampu membaca bahwa itu nomor yang valid (ini tidak akan dibahas di artikel ini).
Setelah memahami permasalahan diatas, mari kita cari solusinya. Untuk memecah sms diatas, Visual Basic menyediakan fungsi Split. Fungsi ini akan memecah string berdasarkan karakter pembatas atau yang disebut delimiter. Berikut ini adalah contoh penggunaan split:
Sub SplitText()
    Dim SourceText As String
    Dim ResultText() As String
    SourceText = "AB-01-JJ"

    ' perintah memecah teks dengan delimiter (-)
    ResultText = Split(SourceText, "-")

    Debug.Print(ResultText(0))
    'hasil: AB
    Debug.Print(ResultText(1))
    'hasil: 01
    Debug.Print(ResultText(2))
    'hasil: JJ

    SourceText = "AB01**JJ"
    ' perintah memecah teks dengan delimiter (**)
    ResultText = Split(SourceText, "**")

    Debug.Print(ResultText(0))
    'hasil: AB01
    Debug.Print(ResultText(1))
    'hasil: JJ
End Sub
Untuk memecahkan kasus sms diatas, kita melakukan dua kali split yaitu: REG 5104252536525252#510458585588888#
  • Split pertama untuk memisahkan antara kata REG dengan KTP dan KK. Delimiternya adalah karakter kosong (spasi)
    • Hasil split (index array ke 0): REG, kita sebut HasilA
    • Hasil split (index array ke 1): 5104252536525252#510458585588888#, kita sebut HasilB
  • Split kedua dilakukan pada HasilB dengan delimiter #.
    • Hasil split (index array ke-0): 5104252536525252
    • Hasil split (index array ke-1):  510458585588888
Berikut program penggunaan fungsi split untuk membaca sms tersebut:
Sub ReadSMS()
    Dim SMSText As String
    Dim HasilA As String
    Dim HasilB As String
    Dim NOKTP As String
    Dim NOKK As String
    Dim Result() As String

    SMSText = "REG 5104252536525252#510458585588888#"

    ' Memecah teks pertama dengan delimiter spasi
    Result = Split(SMSText, " ")
    HasilA = Result(0) 'menampung REG
    HasilB = Result(1) 'menampung 5104252536525252#510458585588888#

    ' Memecah teks kedua dengan delimiter #
    Result = Split(HasilB, "#")
    NOKTP = Result(0) 'menampung 5104252536525252
    NOKK = Result(1) ' menampung 510458585588888
    Debug.Print(NOKTP)
    'hasil: 5104252536525252
    Debug.Print(NOKK)
    'hasil: 510458585588888
End Sub
Akal-akalan yang dimaksud diatas bukanlah bermakna “membohongi”, tetapi pada menggunakan akal (cerdik) dalam memecahkan suatu permasalahan. Bagaimana jika ada ketidaksesuaian format? Ya tentu saja itu diluar kemampuan penggalan program diatas. Pada suatu aplikasi, sebelum memproses data, aplikasi harus melakukan validasi terhadap data yang diterima. Jika valid, maka masuk ke proses selanjutnya. Jika tidak valid, maka proses ditolak. Selain itu, penanganan error juga dapat ditambahkan pada aplikasi sehingga ketika terjadi error aplikasi mampu memberikan feedback kepada user.

Leave a Reply

Your email address will not be published. Required fields are marked *