Laman

Selasa, 04 Februari 2014

Menemukan Karakter Tertentu dalam String dengan VB.Net

Fungsi InStr merupakan salah satu fungsi string yang digunakan dalam VB.Net untuk menemukan karakter tertentu dalam sebuah text...

Syntax : InStr(String Sumber, "String yang ingin dicari")
Contoh : InStr(ComboBox1.Text, "/")
artinya menemukan karakter "/" di dalam text yang ditampilkan pada ComboBox1.

Dalam kasus yang umum, biasanya fungsi ini disandingkan dengan fungsi string lain, misalnya MID, LEFT, RIGHT, LEN.

Misalnya untuk mengambil DECISION tertentu berdasarkan karakter-karakter yang ada diantara karakter yang menjadi syarat.
contoh : String Kode Barang = TV-101/MDN
Karakter sebelum "-" (garis datar) merupakan nama sebuah barang, kemudian karakter setelah "/" (garis miring merupakan Daerah Lokasi Pengiriman Barang.

Nah kali ini, saya ingin menguraikan cara untuk mendapatkannya dengan memanfaatkan fungsi2 string yang ada. Ikuti langkah2 berikut ini :

Silahkan buat project baru di VB. Net anda.
Di dalam form yang tersedia, silahkan inputkan ComboBox, Label dan TextBox, seperti pada gambar di bawah ini :

Masing-masing komponen ComboBox dan TextBox, tidak perlu ganti namanya (artinya gunakan nama default aja yaitu ComboBox1, TextBox1 dan TextBox2).

Silahkan double klik pada daerah form (ingat daerah form, bukan daerah objek yang lain yang ada di dalam form), kemudian ketik koding di bawah ini :

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        With ComboBox1.Items
            .Add("TV-101/SBG")
            .Add("R-103/NS")
            .Add("KU-102/MDN")
            .Add("R-103/SBG")
            .Add("TV-104/PD")
            .Add("KU-102/NS")
        End With

    End Sub

perintah di atas merupakan coding untuk menambahkan item ke dalam ComboBox1

Setelah itu, silahkan double klik pada ComboBox1, dan ketik Koding di bawah ini :

'Proses untuk menampilkan nama barang dan lokasi pengiriman barang pada saat dipilih salah satu item combo kode
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        Dim x, z As Byte
        Dim xNama, xDaerah as String
        x = InStr(ComboBox1.Text, "-")   '--> ini fungsi string untuk menemukan posisi garis datar ("-")
        z = InStr(ComboBox1.Text, "/")
   '--> ini fungsi string untuk menemukan posisi garis miring ("/")
        xNama = Microsoft.VisualBasic.Mid(ComboBox1.Text, 1, x - 1)
        xDaerah = Microsoft.VisualBasic.Mid(ComboBox1.Text, z + 1, Len(ComboBox1.Text) - z)
 
         'mencari dan menampilkan nama barang
        Select Case xNama
            Case "TV"
                Me.TextBox1.Text = "Televisi"
            Case "R"
                Me.TextBox1.Text = "Radio"
            Case "KU"
                Me.TextBox1.Text = "Kulkas"
        End Select

        'mencari dan menampilkan daerah pengiriman barang
        Select Case xDaerah
            Case "SBG"
                Me.TextBox2.Text = "Sibolga"
            Case "MDN"
                Me.TextBox2.Text = "Medan"
            Case "PD"
                Me.TextBox2.Text = "Padang"
            Case "NS"
                Me.TextBox2.Text = "Nias"
        End Select

    End Sub

Penjelasan Coding di atas :
xNama = Microsoft.VisualBasic.Mid(ComboBox1.Text, 1, x - 1)
coding di atas merupakan pengisian variabel xNama dengan karakter yang ada sebelum "-"
Mid (ComboBox1.text, 1, x-1) merupakan pengambilan karakter dengan posisi yang ditentukan sendiri, artinya : 
ambil karakter yang bersumber dari Text ComboBox1 dimulai dari posisi 1 sepanjang posisi garis datar dikurangi 1 ( sebelumnya kita telah mnyimpan posisi garis data pada variabel x).
contoh : misalnya posisi garis datar yang disimpan di dalam variabel x = 3 
maka Mid (CombBox1.text, 1, x-1), sama artinya dengan Mid (ComboBox1.text, 1, 3-1).
Kenapa dikurangi dengan 1, karena karena yang disimpan di dalam x itu kan posisi garis datar. Nah, yang kita butuhkan kan hanya karakter sebelum garis datar. Kemudian karkater itu kita simpan di dalam variabel xNama.
Pada bagian SELECT CASE xNama (select case yang pertama) digunakan untuk menampilkan nama barang berdasarkan karakter yang disimpan didalam variabel xNama.

xDaerah = Microsoft.VisualBasic.Mid(ComboBox1.Text, z + 1, Len(ComboBox1.Text) - z)
coding ini merupakan pengisian nilai variabel xDaerah dengan karakter setelah garis miring "/"
berarti karakter yang kita ambil mulai dari karakter yang ada di depan karakter "/" sejumlah karakter yang ada di depan karakter "/" itu sendiri. 
Posisi karakter "/" tadi sudah kita simpan di variabel z, kemudian kenapa kita tambah 1? (z+1), karena yang kita ambil kan karakter setelah "/".
Len(combobox1.text) merupakan fungsi string untuk mencari jumlah karakter dalam text kode, kemudian dikurangi dengan posisi dimana adanya karakter "/" (yang sudah kita simpan di variabel z sebelumnya).
contoh : kita pilih kode TV-101/SBG
z = posisi "/" --> 7
Len("TV-101/SBG") --> 10
maka :
Mid(ComboBox1.Text, z + 1, Len(ComboBox1.Text) - z) sama artinya dengan :
Mid(ComboBox1.Text, 7 + 1, 10 - 7).
Pada SELECT CASE xDaerah (Select case yang kedua) digunakan untuk menampilkan lokasi penggiriman barang.
Gimana udah paham kan...?? saya yakin udah.......:) 

2 komentar:

  1. Bagaimana kalo kodenya seperti ini gan TV/101/SBG

    BalasHapus
  2. nah iya seperti diatas, bagaimana jika data berupa TV/101/SBG atau TV|101|SBG

    BalasHapus