28 November 2009

Program Penentu Subjek,Predikat dan Objek Kalimat

Program Penentu Subjek,Predikat dan Objek Kalimat


package id.web.reformation044.app;
import java.awt.Color;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import javax.swing.DefaultListModel;
import javax.swing.JOptionPane;


/**
 *
 * @author reformation044
 */
public class Utama extends javax.swing.JFrame {
    private DefaultListModel modelSubjek = new DefaultListModel();
    private DefaultListModel modelPredikat = new DefaultListModel();
    private DefaultListModel modelObjek = new DefaultListModel();
    private DefaultListModel modelKeterangan = new DefaultListModel();

    private ArrayList himpSubjek = new ArrayList();
    private ArrayList himpPredikat = new ArrayList();
    private ArrayList himpObjek = new ArrayList();
    private ArrayList himpKeterangan = new ArrayList();

    private String subjek,predikat,objek,keterangan;
    /** Creates new form Utama */
    public Utama() {
        initComponents();
        setLocationRelativeTo(null);
        inisialModel();
        setVisible(true);
        JOptionPane.showMessageDialog(this, "SILAKAN DAFTARKAN KATA-KATA DALAM 4 KOLOM POLA DIBAWAH INI\n" +
                                            "SEBELUM MELAKUKAN SEMANTIC CHECKING", "PENTING COY", JOptionPane.WARNING_MESSAGE);
    }

    private void inisialModel(){
        jList1.setModel(modelSubjek);
        jList2.setModel(modelPredikat);
        jList3.setModel(modelObjek);
        jList4.setModel(modelKeterangan);
    }

    private void splitKalimat(String kal){
        String[] token = kal.split(" ");
        subjek = token[0];
        predikat = token[1];
        objek = token[2];
        keterangan = token[3]+" "+token[4];
    }

    private boolean validasiSubjek(String input){
        for(String s:himpSubjek){
            if(s.equalsIgnoreCase(input)){
                return true;
            }
        }
        return false;
    }
    private boolean validasiPredikat(String input){
        for(String s:himpPredikat){
            if(s.equalsIgnoreCase(input)){
                return true;
            }
        }
        return false;
    }
    private boolean validasiObjek(String input){
        for(String s:himpObjek){
            if(s.equalsIgnoreCase(input)){
                return true;
            }
        }
        return false;
    }
    private boolean validasiKeterangan(String input){
        for(String s:himpKeterangan){
            if(s.equalsIgnoreCase(input)){
                return true;
            }
        }
        return false;
    }
    private int countToken(){
        return textKalimat.getText().split(" ").length;
    }
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // //GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        textKalimat = new javax.swing.JTextField();
        process = new javax.swing.JButton();
        clear = new javax.swing.JButton();
        jPanel2 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        info = new javax.swing.JTextArea();
        jPanel3 = new javax.swing.JPanel();
        jPanel4 = new javax.swing.JPanel();
        inSubjek = new javax.swing.JTextField();
        jScrollPane2 = new javax.swing.JScrollPane();
        jList1 = new javax.swing.JList();
        jPanel5 = new javax.swing.JPanel();
        inPredikat = new javax.swing.JTextField();
        jScrollPane3 = new javax.swing.JScrollPane();
        jList2 = new javax.swing.JList();
        jPanel6 = new javax.swing.JPanel();
        inObjek = new javax.swing.JTextField();
        jScrollPane4 = new javax.swing.JScrollPane();
        jList3 = new javax.swing.JList();
        jPanel7 = new javax.swing.JPanel();
        inKeterangan = new javax.swing.JTextField();
        jScrollPane5 = new javax.swing.JScrollPane();
        jList4 = new javax.swing.JList();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Simulasi Sederhana Analisa Semantic Kalimat Aktif Transitif (S-P-O-K), reformation044.web.id");
        setResizable(false);

        jPanel1.setBackground(new java.awt.Color(102, 102, 102));
        jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));

        jLabel1.setForeground(new java.awt.Color(255, 255, 255));
        jLabel1.setText("Masukkan Kalimat :");
        jPanel1.add(jLabel1);

        textKalimat.setColumns(30);
        textKalimat.setToolTipText("MASUKKAN 5 KATA");
        textKalimat.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                textKalimatKeyReleased(evt);
            }
        });
        jPanel1.add(textKalimat);

        process.setText("semantic checking");
        process.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                processActionPerformed(evt);
            }
        });
        jPanel1.add(process);

        clear.setText("clear");
        clear.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                clearActionPerformed(evt);
            }
        });
        jPanel1.add(clear);

        getContentPane().add(jPanel1, java.awt.BorderLayout.NORTH);

        jPanel2.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));
        jPanel2.setPreferredSize(new java.awt.Dimension(544, 290));
        jPanel2.setLayout(new java.awt.BorderLayout());

        info.setColumns(20);
        info.setRows(10);
        jScrollPane1.setViewportView(info);

        jPanel2.add(jScrollPane1, java.awt.BorderLayout.PAGE_START);

        jPanel3.setBackground(new java.awt.Color(51, 51, 51));
        jPanel3.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));

        jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Subjek", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 11), new java.awt.Color(204, 204, 204))); // NOI18N
        jPanel4.setOpaque(false);
        jPanel4.setPreferredSize(new java.awt.Dimension(160, 215));
        jPanel4.setLayout(new java.awt.BorderLayout());

        inSubjek.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                inSubjekKeyPressed(evt);
            }
        });
        jPanel4.add(inSubjek, java.awt.BorderLayout.NORTH);

        jList1.setEnabled(false);
        jScrollPane2.setViewportView(jList1);

        jPanel4.add(jScrollPane2, java.awt.BorderLayout.CENTER);

        jPanel3.add(jPanel4);

        jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Predikat", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 11), new java.awt.Color(204, 204, 204))); // NOI18N
        jPanel5.setOpaque(false);
        jPanel5.setPreferredSize(new java.awt.Dimension(160, 215));
        jPanel5.setLayout(new java.awt.BorderLayout());

        inPredikat.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                inPredikatKeyPressed(evt);
            }
        });
        jPanel5.add(inPredikat, java.awt.BorderLayout.NORTH);

        jList2.setEnabled(false);
        jScrollPane3.setViewportView(jList2);

        jPanel5.add(jScrollPane3, java.awt.BorderLayout.CENTER);

        jPanel3.add(jPanel5);

        jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Objek", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 11), new java.awt.Color(204, 204, 204))); // NOI18N
        jPanel6.setOpaque(false);
        jPanel6.setPreferredSize(new java.awt.Dimension(160, 215));
        jPanel6.setLayout(new java.awt.BorderLayout());

        inObjek.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                inObjekKeyPressed(evt);
            }
        });
        jPanel6.add(inObjek, java.awt.BorderLayout.NORTH);

        jList3.setEnabled(false);
        jScrollPane4.setViewportView(jList3);

        jPanel6.add(jScrollPane4, java.awt.BorderLayout.CENTER);

        jPanel3.add(jPanel6);

        jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Keterangan", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 11), new java.awt.Color(204, 204, 204))); // NOI18N
        jPanel7.setOpaque(false);
        jPanel7.setPreferredSize(new java.awt.Dimension(160, 215));
        jPanel7.setLayout(new java.awt.BorderLayout());

        inKeterangan.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                inKeteranganKeyPressed(evt);
            }
        });
        jPanel7.add(inKeterangan, java.awt.BorderLayout.NORTH);

        jList4.setEnabled(false);
        jScrollPane5.setViewportView(jList4);

        jPanel7.add(jScrollPane5, java.awt.BorderLayout.CENTER);

        jPanel3.add(jPanel7);

        jPanel2.add(jPanel3, java.awt.BorderLayout.CENTER);

        getContentPane().add(jPanel2, java.awt.BorderLayout.CENTER);

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-729)/2, (screenSize.height-488)/2, 729, 488);
    }//
//GEN-END:initComponents

    private void processActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_processActionPerformed
        // TODO add your handling code here:
        if(!textKalimat.getText().isEmpty()){
            textKalimat.setEditable(false);
            splitKalimat(textKalimat.getText());
            if(validasiSubjek(subjek)&&validasiPredikat(predikat)&&validasiObjek(objek)&&validasiKeterangan(keterangan)){
                StringBuilder sb = new StringBuilder();
                sb.append("subjek : "+subjek+"\n");
                sb.append("predikat : "+predikat+"\n");
                sb.append("objek : "+objek+"\n");
                sb.append("keterangan : "+keterangan+"\n");
                info.setText(sb.toString());
            }else{
                info.setText("POLA KALIMAT YANG ANDA MASUKKAN TIDAK SESUAI DENGAN S-P-O-K DIBAWAH");
            }
        }
    }//GEN-LAST:event_processActionPerformed

   
    private void inSubjekKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_inSubjekKeyPressed
        // TODO add your handling code here:
        if(evt.getKeyCode()==KeyEvent.VK_ENTER){
            if(!inSubjek.getText().equals(null)){
                modelSubjek.addElement(inSubjek.getText());
                himpSubjek.add(inSubjek.getText());
                inSubjek.setText("");
            }
        }
    }//GEN-LAST:event_inSubjekKeyPressed

    private void inPredikatKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_inPredikatKeyPressed
        // TODO add your handling code here:
        if(evt.getKeyCode()==KeyEvent.VK_ENTER){
            if(!inPredikat.getText().equals(null)){
                modelPredikat.addElement(inPredikat.getText());
                himpPredikat.add(inPredikat.getText());
                inPredikat.setText("");
            }
        }
    }//GEN-LAST:event_inPredikatKeyPressed

    private void inObjekKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_inObjekKeyPressed
        // TODO add your handling code here:
          if(evt.getKeyCode()==KeyEvent.VK_ENTER){
            if(!inObjek.getText().equals(null)){
                modelObjek.addElement(inObjek.getText());
                himpObjek.add(inObjek.getText());
                inObjek.setText("");
            }
        }
    }//GEN-LAST:event_inObjekKeyPressed

    private void inKeteranganKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_inKeteranganKeyPressed
        // TODO add your handling code here:
          if(evt.getKeyCode()==KeyEvent.VK_ENTER){
            if(!inKeterangan.getText().equals(null)){
                modelKeterangan.addElement(inKeterangan.getText());
                himpKeterangan.add(inKeterangan.getText());
                inKeterangan.setText("");
            }
        }
    }//GEN-LAST:event_inKeteranganKeyPressed

    private boolean cekIsiDataPolaKalimat(){
        if(himpSubjek.isEmpty()||himpPredikat.isEmpty()||himpObjek.isEmpty()||himpKeterangan.isEmpty())
            return true;
        else
            return false;
    }

    private void textKalimatKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_textKalimatKeyReleased
        // TODO add your handling code here:
        if(cekIsiDataPolaKalimat()){
           textKalimat.setBackground(Color.red);
           textKalimat.setText("");
        }else{
            textKalimat.setBackground(Color.white);
           if(countToken()==6){
               textKalimat.setEditable(false);
               textKalimat.setText(textKalimat.getText().substring(0,textKalimat.getText().lastIndexOf(" ")));
           }
        }

    }//GEN-LAST:event_textKalimatKeyReleased

    private void clearActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clearActionPerformed
        // TODO add your handling code here:
        textKalimat.setText("");
        textKalimat.setEditable(true);
        info.setText("");
    }//GEN-LAST:event_clearActionPerformed

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Utama().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton clear;
    private javax.swing.JTextField inKeterangan;
    private javax.swing.JTextField inObjek;
    private javax.swing.JTextField inPredikat;
    private javax.swing.JTextField inSubjek;
    private javax.swing.JTextArea info;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JList jList1;
    private javax.swing.JList jList2;
    private javax.swing.JList jList3;
    private javax.swing.JList jList4;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JPanel jPanel7;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JScrollPane jScrollPane5;
    private javax.swing.JButton process;
    private javax.swing.JTextField textKalimat;
    // End of variables declaration//GEN-END:variables
}



Artikel Terkait:

0 komentar:

Post a Comment

Tinggalkan Komentarmu Sob.

Sedikit Tentang Aye

Cari di Blog ini

Sobat Aye

Pesan Sobat

 
Copyright © Blognya Farhan