Scripting: JavaScript Dalam Java


Salah satu hal baru yang dibawa oleh Java 6 adalah Java Scripting API yang memungkinkan kita menjalankan script dalam aplikasi Java kita. Script yang dapat di-eksekusi dalam Java tidak harus berupa JavaScript, bisa sebebas mungkin sesuai dengan engine yang tersedia. Dalam artikel ini, saya akan mencoba memakai engine bawaan JDK 6, yaitu Mozilla Rhino yang berbasiskan JavaScript.

Program percobaan saya berupa sebuah program sederhana yang melakukan kalkulasi rumus yang di-input oleh user. User bisa mengisi nilai untuk variabel ‘x’ dan variabel ‘y’, kemudian ia bisa mengisi rumus yang akan dikerjakan di textfield. Tentu saja rumus ini harus sesuai dengan syntax JavaScript. Setelah itu, user menekan tombol “Hitung” untuk melihat hasil rumusnya.

Berikut ini adalah kode program yang saya buat (untuk menjalankannya butuh JDK 6):

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.script.*;

public class LatihanScript extends JFrame {

  private JLabel lblX = new JLabel("Variabel X: ");
  private JTextField txtX = new JTextField(10);
  private JLabel lblY = new JLabel("Variabel Y: ");
  private JTextField txtY = new JTextField(10);
  private JLabel lblRumus = new JLabel("Rumus: ");
  private JTextField txtRumus = new JTextField(20);
  private JButton btnHitung = new JButton("Hitung");
  private JLabel lblHasil = new JLabel("Hasil : ");
  private ScriptEngine engineJavaScript;

  public LatihanScript() {
     
     super("Latihan Scripting Di Java");
     
     ScriptEngineManager factory = new ScriptEngineManager();
     engineJavaScript = factory.getEngineByName("JavaScript");
   
     setLayout(new FlowLayout());
     add(lblX);
     add(txtX);
     add(lblY);
     add(txtY);
     add(lblRumus);
     add(txtRumus);
     add(btnHitung);
     add(lblHasil);

     btnHitung.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
           try {
              engineJavaScript.put("x", Integer.valueOf(txtX.getText()));
              engineJavaScript.put("y", Integer.valueOf(txtY.getText()));
              Object o = engineJavaScript.eval(txtRumus.getText());             
              lblHasil.setText("Hasil: " + o);
           } catch (Exception ex) {
              lblHasil.setText("ERROR");
           }
        }
     });

     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     pack();
     setVisible(true);

  }


  public static void main (String args[]) {
     new LatihanScript();
  }
}

Aku mencoba memasukkan nilai “2” untuk variabel x dan nilai “3” untuk variabel y, kemudian memasukkan “(x+5) + (y*3)” di rumus. Setelah menekan tombol “Hitung”, aku akan mendapatkan “Hasil: 19.0”.. Lalu mencoba mengganti rumus menjadi “(x*x) + (2*y) + 5”. Kali ini setelah tombol “Hitung” ditekan, aku mendapatkan nilai hasil berupa “15.0”.

Perihal Solid Snake
I'm nothing...

One Response to Scripting: JavaScript Dalam Java

  1. cobaberbagi mengatakan:

    saya nda ngerti tentang script

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

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

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: