Expression Evaluator (parser) dengan VB

Juli 2, 2008 at 3:05 pm 1 komentar

Dalam tulisan ini akan dibahas tentang cara untuk membuat parse yang dapat digunakan untuk mengevaluator pernyataan matematika yang berupa string untuk (1) satu operator dengan dua bilangan dan (2) multi operator dan multi bilangan. bahasa yang akan digunakan dalam hal ini adalah Visual Basic.

(1) Parser untuk satu operator

untuk membuat parser secara sederhana dapat dijelaskan sebagai berikut:

sebagai contoh: Expr = “2 * 3″

untuk membuat parsernya langkah-langkah yang harus dilakukan adalah sebagai berikut:

  1. Tentukan panjang karakter dari Expr: –> Gunakan fungsi Len(Expr)
  2. Baca setiap karakter dari Expr dan tentukan operator yang terdapat dalam Expr –> Gunakan fungsi Mid(Expr, Start, length) untuk mengambil setiap karakter.
  3. tentukan bilangan-bilangan yang terdapat dalam Expr serta masukkan bilangan pertama yang didapat kedalam variabel Bil1 dan bilangan kedua sebagai Bil2
  4. misalkan operator yang diperoleh dimasukkan dalam variabel Opr dan hasil dari pengoperasian bilangan dimasukkan dalam variabel Ans. selanjutnya jika Opr=”^” maka Ans = bil1 ^ bil2: jika Opr=”*” maka ans = bil1 * bil2: jika Opr=”/” maka ans = bil1 / bil2: dst …

Implementasi dalam kode program:

Function Parse(ByRef Expr As Variant) As Double
    Dim panjang As Integer, i As Integer
    Dim b As String, Operator As String, PosisiOperator As Integer
    Dim ans As Double
    Dim Bil1 As Single, Bil2 As Single

    panjang = Len(Expr)
    For i = 1 To panjang
        b = Mid(Expr, i, 1) ‘membaca setiap karakter dalam expr
        If b = “^” Or b = “*” Or b = “/” Or b = “+” Or b = “-” Then
            Operator = b
            PosisiOperator = i
        End If
    Next i
    Bil1 = Mid(Expr, 1, PosisiOperator – 1)
    Bil2 = Mid(Expr, PosisiOperator + 1, panjang – PosisiOperator)
    Select Case Operator
        Case “^”
            ans = Bil1 ^ Bil2
        Case “*”
            ans = Bil1 * Bil2
        Case “/”
            ans = Bil1 / Bil2
        Case “+”
            ans = Bil1 + Bil2
        Case “-”
            ans = Bil1 – Bil2
    End Select
    Parse = ans
End Function

(2) Parser untuk jumlah operator lebih satu (multi operator)

akan segera ditulis … :)

Entry filed under: Math Parser. Tags: .

Hello world! Expression Evaluator (2)

1 Komentar Add your own

  • 1. Rizal  |  Juli 3, 2008 pukul 1:29 pm

    thanks :)

Tinggalkan Balasan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Ubah )

Twitter picture

You are commenting using your Twitter account. Log Out / Ubah )

Facebook photo

You are commenting using your Facebook account. Log Out / Ubah )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Kalender

Juli 2008
S S R K J S M
    Sep »
 123456
78910111213
14151617181920
21222324252627
28293031  

Most Recent Posts


Ikuti

Get every new post delivered to your Inbox.