Jumat, 02 April 2010

Source code 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
}

Tidak ada komentar:

Posting Komentar