Analisis Perbandingan Kinerja Algoritma Fixed Length Binary Encoding (Flbe) Dengan Algoritma Sequitur Dalam Kompresi File Teks

  ProgramSkripsi package program.skripsi; /**

  • @author Yosef */ public class ProgramSkripsi { /**
  • @param args the command line arguments
  • / public static void main (String args[]){ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(Compression.class.getName()).log(java.util.loggin g.Level.SEVERE, null, ex); } catch (InstantiationException ex) {

  java.util.logging.Logger.getLogger(Compression.class.getName()).log(java.util.loggin

  } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(Compression.class.getName()).log(java.util.loggin g.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(Compression.class.getName()).log(java.util.loggin g.Level.SEVERE, null, ex); } java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Program().setVisible(true); } });}} Algorithms Class package program.skripsi; import java.util.*; /**

  • @author Yosef */ public class algorithms { public static void CharinString(String text, List character, List freq){ char[] chars = text.toCharArray(); int count = 0; for (char c : chars) { if(character.contains(c)==false){ character.add(c); count = 1; freq.add(count);
else{ count = Integer.parseInt(freq.get(character.indexOf(c)).toString())+ 1; freq.set(character.indexOf(c), count); } } } public static String paddingandflagging(int n){ StringBuffer padflag = new StringBuffer(); String pad = ""; int x = 8 - (n%8); for(int i=0;i<x;i++){ pad +="0"; } String dec = Integer.toBinaryString(pad.length()); String flag=""; int y = 8 - dec.length(); for(int i=0;i<y;i++){ flag +="0"; } padflag.append(pad+flag+dec); System.out.println("padd "+pad); return padflag.toString(); } public static String Encode(String bitstring){ StringBuffer str = new StringBuffer(); for(int i=0; i<bitstring.length(); i+=8){ String s = bitstring.substring(i, i+8); char c = (char) (Integer.parseInt(s, 2)); str.append(c); }

  } Compression package program.skripsi; import java.beans.PropertyChangeEvent; import java.util.*; import java.io.*; import java.util.Map.Entry; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.filechooser.FileNameExtensionFilter; import org.apache.poi.extractor.ExtractorFactory; import org.apache.poi.hwpf.extractor.WordExtractor; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.openxml4j.exceptions.OpenXML4JException; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.xmlbeans.XmlException; /**

  • @author Yosef */ public class Compression extends javax.swing.JInternalFrame { List character = new ArrayList(); List frequency = new ArrayList(); Map<String,String> rule = new HashMap(); String text;

  File file; File file1; JFileChooser openfile = new JFileChooser(); JFileChooser savefile = new JFileChooser();

  String[] code ; String[] paragraph; String algorithm; String bitstr=""; String ekstfile; String writestr; int uncompressed_bits; int compressed_bits; Long totaltime; int n=0; /**

  • Creates new form Compression */ public Compression() { openfile.setAcceptAllFileFilterUsed(false); openfile.addChoosableFileFilter(new FileNameExtensionFilter("TXT Document (*.txt)", "txt")); openfile.addChoosableFileFilter(new FileNameExtensionFilter("WORD Document (*.doc)","doc")); openfile.addChoosableFileFilter(new FileNameExtensionFilter("All Files (*.txt,*.doc)","doc", "txt")); initComponents(); } /** * 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") // <editor-fold defaultstate="collapsed" desc="Generated Code">
jPanel1 = new javax.swing.JPanel(); jButton1 = new javax.swing.JButton(); jPanel2 = new javax.swing.JPanel(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jScrollPane4 = new javax.swing.JScrollPane(); jTextArea2 = new javax.swing.JTextArea(); jScrollPane5 = new javax.swing.JScrollPane(); jTextArea1 = new javax.swing.JTextArea(); jPanel3 = new javax.swing.JPanel(); jTextField1 = new javax.swing.JTextField(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jTextField2 = new javax.swing.JTextField(); jButton3 = new javax.swing.JButton(); jButton5 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jButton4 = new javax.swing.JButton(); jRadioButton1 = new javax.swing.JRadioButton(); jRadioButton2 = new javax.swing.JRadioButton(); jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "COMPRESSION", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Agency FB", 1, 36))); // NOI18N jButton1.setFont(new java.awt.Font("Agency FB", 0, 18)); // NOI18N jButton1.setText("Compress"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt);

  }); jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "RESULT", javax.swing.border.TitledBorder.LEFT, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Agency FB", 0, 18))); // NOI18N jLabel3.setFont(new java.awt.Font("Agency FB", 0, 18)); // NOI18N jLabel3.setText("FLBE"); jLabel4.setFont(new java.awt.Font("Agency FB", 0, 18)); // NOI18N jLabel4.setText("SEQUITUR"); jTextArea2.setColumns(20); jTextArea2.setRows(5); jScrollPane4.setViewportView(jTextArea2); jTextArea1.setColumns(20); jTextArea1.setRows(5); jScrollPane5.setViewportView(jTextArea1); javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addGap(33, 33, 33) .addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, 286, javax.swing.GroupLayout.PREFERRED_SIZE)

  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 62, Short.MAX_VALUE) .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 285, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(20, 20, 20)) .addGroup(jPanel2Layout.createSequentialGroup() .addGap(158, 158, 158) .addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel4) .addGap(139, 139, 139)) ); jPanel2Layout.setVerticalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup() .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment. LEADING) .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabel4, javax.swing.GroupLayout.Alignment.TRAILING)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.

  .addComponent(jScrollPane5, javax.swing.GroupLayout.DEFAULT_SIZE, 190, Short.MAX_VALUE) .addComponent(jScrollPane4)) .addContainerGap()) ); jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("")); jTextField1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextField1ActionPerformed(evt); } }); jLabel1.setFont(new java.awt.Font("Agency FB", 0, 18)); // NOI18N jLabel1.setText("Choose File:"); jLabel2.setFont(new java.awt.Font("Agency FB", 0, 18)); // NOI18N jLabel2.setText("Save As:"); jButton3.setText(".."); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } }); jButton5.setText(".."); jButton5.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton5ActionPerformed(evt); } javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); jPanel3.setLayout(jPanel3Layout); jPanel3Layout.setHorizontalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.

  LEADING) .addComponent(jLabel1) .addComponent(jLabel2)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.

  LEADING) .addGroup(jPanel3Layout.createSequentialGroup() .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 206, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButton5, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel3Layout.createSequentialGroup() .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 206, javax.swing.GroupLayout.PREFERRED_SIZE)

  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap(28, Short.MAX_VALUE)) ); jPanel3Layout.setVerticalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup() .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.

  BASELINE) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel1) .addComponent(jButton3)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment. BASELINE) .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel2) .addComponent(jButton5))

  ); jButton2.setFont(new java.awt.Font("Agency FB", 0, 18)); // NOI18N jButton2.setText("Clear"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); jButton4.setFont(new java.awt.Font("Agency FB", 0, 18)); // NOI18N jButton4.setText("Close"); jButton4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton4ActionPerformed(evt); } }); jRadioButton1.setFont(new java.awt.Font("Agency FB", 0, 18)); // NOI18N jRadioButton1.setText("FLBE"); jRadioButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jRadioButton1ActionPerformed(evt); } }); jRadioButton2.setFont(new java.awt.Font("Agency FB", 0, 18)); // NOI18N jRadioButton2.setText("SEQUITUR"); jRadioButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jRadioButton2ActionPerformed(evt); } javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.

  LEADING) .addComponent(jPanel2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(jPanel1Layout.createSequentialGroup() .addGap(34, 34, 34) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.

  LEADING) .addComponent(jRadioButton2) .addComponent(jRadioButton1)) .addGap(65, 65, 65) .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel1Layout.createSequentialGroup() .addGap(232, 232, 232) .addComponent(jButton1)

  .addComponent(jButton2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButton4))) .addGap(4, 4, 4)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.

  LEADING) .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jRadioButton1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jRadioButton2))) .addGap(18, 18, 18) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.

  BASELINE) .addComponent(jButton1) .addComponent(jButton2) .addComponent(jButton4)) .addGap(5, 5, 5) .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,

  .addContainerGap(26, Short.MAX_VALUE)) ); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(37, Short.MAX_VALUE)) ); pack(); }// </editor-fold> private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(algorithm==null){ JOptionPane.showMessageDialog(rootPane,"Please Choose your algorithm

  } else if(jTextField1.getText().equals("")){ JOptionPane.showMessageDialog(rootPane,"No Input File Found!","Error",JOptionPane.WARNING_MESSAGE); } else if(jTextField2.getText().equals("")){ JOptionPane.showMessageDialog(rootPane,"Please Set Directory For Output File !","Error",JOptionPane.WARNING_MESSAGE); } else{ try{ Long starttime = System.currentTimeMillis(); // int s = 0; // jProgressBar1.setValue(s); algorithms alg = new algorithms(); if(algorithm=="flbe"){ alg.CharinString(content.toString(),character,frequency); n = character.size(); code = alg.flb(n); for(int i=0;i<content.toString().length();i++){ bitstr += code[character.indexOf(content.toString().charAt(i))]; } String padflag=""; padflag= alg.paddingandflagging(bitstr.length()); bitstr +=padflag; writestr = alg.Encode(bitstr); System.out.println("Panjang Bit String Sebelum Encode "+bitstr.length()+" bit");

  System.out.println("panjang Bit string Setelah encode "+writestr.length()+" Byte"); if(jTextField1.getText().toLowerCase().endsWith(".txt")){ ekstfile =".txt.flb"; } else if(jTextField1.getText().toLowerCase().endsWith(".doc")){ ekstfile =".doc.flb"; } } else if(algorithm=="sequitur"){ alg.Sqrprocess(content.toString()); alg.Sequitur(content.toString(),rule); writestr = alg.Sqrprocess(content.toString()); bitstr = alg.Decode(writestr); System.out.println("Panjang Bit String Sebelum Encode "+bitstr.length()+" bit"); System.out.println("panjang bit string Setelah encode "+writestr.length()+" Byte"); if(jTextField1.getText().toLowerCase().endsWith(".txt")){ ekstfile =".txt.sqr"; } else if(jTextField1.getText().toLowerCase().endsWith(".doc")){ ekstfile =".doc.sqr"; } } File compressedfile = new File(file1.getAbsolutePath().toString()+ekstfile); try (FileWriter fw = new FileWriter(compressedfile)) { System.out.print(fw.getEncoding()); fw.write(writestr); fw.flush(); fw.close(); if(algorithm=="flbe"){ FileOutputStream fos = new FileOutputStream(file1.getAbsoluteFile().toString()+ekstfile+".h"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(character); oos.writeObject(code); oos.close(); } else if(algorithm=="sequitur"){ FileOutputStream fos = new FileOutputStream(file1.getAbsoluteFile().toString()+ekstfile+".h"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(rule); oos.close(); } Long endtime = System.currentTimeMillis(); totaltime = endtime - starttime; }} catch (IOException ex) { JOptionPane.showMessageDialog(null, ex.toString(), "Error", JOptionPane.ERROR); } compressed_bits = bitstr.length(); System.out.print("compressed size="+compressed_bits+" bit"); double RC = (double)uncompressed_bits/compressed_bits; double CR = (double)compressed_bits/uncompressed_bits *100; double RD = (double)100-CR; Decompression package program.skripsi;

import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.filechooser.FileNameExtensionFilter; import org.apache.poi.extractor.ExtractorFactory; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.extractor.WordExtractor; /* * To change this license header, choose License Headers in Project Properties.

  • To change this template file, choose Tools | Templates * and open the template in the editor.
  • / /**
  • @author Yosef */ public class Decompression extends javax.swing.JInternalFrame { List character = new ArrayList(); List frequency = new ArrayList(); List flbecode = new ArrayList(); Map<String,String> rule = new HashMap<>();

  // String text; File file; File file1; JFileChooser openfile = new JFileChooser(); JFileChooser savefile = new JFileChooser(); StringBuffer content = new StringBuffer(); StringBuffer content1 = new StringBuffer();

  FileNameExtensionFilter filter1 = new FileNameExtensionFilter("FLBE File (*.flb)","flb"); FileNameExtensionFilter filter2 = new FileNameExtensionFilter("Sequitur File (*.sqr)","sqr"); FileNameExtensionFilter text = new FileNameExtensionFilter("TEXT Document", "txt"); FileNameExtensionFilter word = new FileNameExtensionFilter("WORD Document","doc"); int text_bits; String[] code ; String[] paragraph; String algorithm; String bitstr=""; String dstr=""; String ekstfile; // String writestr; int uncompressed_bits; int compressed_bits; Long totaltime,endtime,starttime; int n=0; /**

  • Creates new form Decompression */ public Decompression() { initComponents(); } /** * 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") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jPanel7 = new javax.swing.JPanel(); jButton3 = new javax.swing.JButton(); jPanel5 = new javax.swing.JPanel(); jLabel7 = new javax.swing.JLabel(); jLabel8 = new javax.swing.JLabel(); jScrollPane8 = new javax.swing.JScrollPane(); jTextArea2 = new javax.swing.JTextArea(); jScrollPane9 = new javax.swing.JScrollPane(); jTextArea1 = new javax.swing.JTextArea(); jPanel6 = new javax.swing.JPanel(); jTextField1 = new javax.swing.JTextField(); jLabel1 = new javax.swing.JLabel(); jButton4 = new javax.swing.JButton(); jLabel2 = new javax.swing.JLabel(); jTextField3 = new javax.swing.JTextField(); jButton8 = new javax.swing.JButton(); jButton5 = new javax.swing.JButton(); jButton7 = new javax.swing.JButton(); jRadioButton1 = new javax.swing.JRadioButton(); jRadioButton2 = new javax.swing.JRadioButton(); jTextField2 = new javax.swing.JTextField(); jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "DECOMPRESSION", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Agency FB", 1, 36))); // NOI18N jButton3.setFont(new java.awt.Font("Agency FB", 0, 18)); // NOI18N jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3jButton1ActionPerformed(evt); } }); jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "RESULT", javax.swing.border.TitledBorder.LEFT, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Agency FB", 0, 18))); // NOI18N jLabel7.setFont(new java.awt.Font("Agency FB", 0, 18)); // NOI18N jLabel7.setText("FLBE"); jLabel8.setFont(new java.awt.Font("Agency FB", 0, 18)); // NOI18N jLabel8.setText("SEQUITUR"); jTextArea2.setColumns(20); jTextArea2.setRows(5); jScrollPane8.setViewportView(jTextArea2); jTextArea1.setColumns(20); jTextArea1.setRows(5); jScrollPane9.setViewportView(jTextArea1); javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5); jPanel5.setLayout(jPanel5Layout); jPanel5Layout.setHorizontalGroup( jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup()

  .addComponent(jScrollPane9, javax.swing.GroupLayout.DEFAULT_SIZE, 289, Short.MAX_VALUE) .addGap(68, 68, 68) .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, 290, Short.MAX_VALUE) .addGap(20, 20, 20)) .addGroup(jPanel5Layout.createSequentialGroup() .addGap(158, 158, 158) .addComponent(jLabel7) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel8) .addGap(139, 139, 139)) ); jPanel5Layout.setVerticalGroup( jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup() .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment. LEADING) .addComponent(jLabel7, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabel8, javax.swing.GroupLayout.Alignment.TRAILING)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.

  LEADING, false)

  .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, 201, Short.MAX_VALUE) .addComponent(jScrollPane9)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder("")); jTextField1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextField1ActionPerformed(evt); } }); jLabel1.setFont(new java.awt.Font("Agency FB", 0, 18)); // NOI18N jLabel1.setText("Open (*.flb or *.sqr)"); jButton4.setText(".."); jButton4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton4jButton3ActionPerformed(evt); } }); jLabel2.setFont(new java.awt.Font("Agency FB", 0, 18)); // NOI18N jLabel2.setText("Save As:"); jTextField3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextField3ActionPerformed(evt); } jButton8.setText(".."); jButton8.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton8jButton5ActionPerformed(evt); } }); private void jButton3jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(algorithm==null){ JOptionPane.showMessageDialog(rootPane,"Please choose your algorithm first!","Error",JOptionPane.WARNING_MESSAGE); } else if(jTextField1.getText().equals("")){ JOptionPane.showMessageDialog(rootPane,"No Input File Found!","Error",JOptionPane.WARNING_MESSAGE); } else if(jTextField2.getText().equals("")){ JOptionPane.showMessageDialog(rootPane,"No Header File (*.h) Found!","Error",JOptionPane.WARNING_MESSAGE); } else if(jTextField3.getText().equals("")){ JOptionPane.showMessageDialog(rootPane,"Please Set Directory For Output File !","Error",JOptionPane.WARNING_MESSAGE); } else { starttime = System.currentTimeMillis(); algorithms alg = new algorithms(); bitstr = alg.Decode(content.toString()); if(algorithm=="flbe"){ dstr=alg.flbedecompress(bitstr,flbecode,character); }

dstr=alg.sqrdecompress(content.toString(),rule); } String namafile = jTextField1.getText().toLowerCase(); if(namafile.substring(namafile.length()-8, namafile.length()-4).equals(".txt")){ File newTextFile = new File(file1.getAbsolutePath().toString()+".txt"); try (FileWriter fw = new FileWriter(newTextFile)) { fw.write(dstr); fw.flush(); fw.close(); endtime = System.currentTimeMillis(); } catch (IOException ex) { JOptionPane.showMessageDialog(null, ex.toString(), "Error", JOptionPane.ERROR); } } else if(namafile.substring(namafile.length()-8, namafile.length()- 4).equals(".doc")){ try{ InputStream systemResource = ClassLoader.getSystemResourceAsStream("program/skripsi/template.doc"); POIFSFileSystem poi = new POIFSFileSystem(systemResource); HWPFDocument doc = new HWPFDocument(poi); Range range = doc.getRange(); StringBuilder bucket = new StringBuilder(); bucket.append(dstr); range.insertBefore(bucket.toString()); bucket = null; FileOutputStream fos = new FileOutputStream(file1.getAbsolutePath().toString()+".doc");

fos.close(); fos=null; endtime = System.currentTimeMillis(); } catch(IOException ex){ JOptionPane.showMessageDialog(null, ex.toString(), "Error", JOptionPane.ERROR); } } uncompressed_bits = dstr.length()*8; double completeness = (double)uncompressed_bits/(double)text_bits * 100; Long totaltime = endtime- starttime; if(algorithm == "flbe"){ jTextArea1.append("-----------------------------------------\n"

Dokumen yang terkait

BAB 2 TINJAUAN PUSTAKA 2.1. Elektrokimia 2.1.1. Pengertian Elektrokimia - Pengaruh Waktu Terhadap Kecepatan Korosi Logam Fe, Ni, Dan Cr Pada Korosi Baja SS 304 Dalam Medium Asam Sulfat ( H2SO4 ) 1M

1 1 21

Pengaruh Waktu Terhadap Kecepatan Korosi Logam Fe, Ni, Dan Cr Pada Korosi Baja SS 304 Dalam Medium Asam Sulfat ( H2SO4 ) 1M

0 0 6

Pengaruh Waktu Terhadap Kecepatan Korosi Logam Fe, Ni, Dan Cr Pada Korosi Baja SS 304 Dalam Medium Asam Sulfat ( H2SO4 ) 1M

0 0 9

BAB II PENGELOLAAN KASUS A. Konsep Dasar Keperawatan Dengan Masalah Kebutuhan Nutrisi 1. Konsep Dasar 1.1. Nutrisi 1.1.1. Definisi nutrisi - Asuhan Keperawatan pada An. R dengan Prioritas Masalah Gangguan Nutrisi Kurang dari Kebutuhan Tubuh di Perumahan V

0 0 56

Analisis Perbedaan Abnormal Return dan Trading Volume Activity (TVA) Saham Sebelum dan Sesudah Stock Split (Studi Kasus pada Perusahaan Go Public di BEI yang Melakukan Stock Split Tahun 2009-2013)

0 0 34

BAB II TINJAUAN PUSTAKA 2.1 Uraian Teoritis 2.1.1 Pasar Modal - Analisis Perbedaan Abnormal Return dan Trading Volume Activity (TVA) Saham Sebelum dan Sesudah Stock Split (Studi Kasus pada Perusahaan Go Public di BEI yang Melakukan Stock Split Tahun 2009-

0 0 20

BAB I PENDAHULUAN 1.1 Latar Belakang - Analisis Perbedaan Abnormal Return dan Trading Volume Activity (TVA) Saham Sebelum dan Sesudah Stock Split (Studi Kasus pada Perusahaan Go Public di BEI yang Melakukan Stock Split Tahun 2009-2013)

0 1 10

Analisis Perbedaan Abnormal Return dan Trading Volume Activity (TVA) Saham Sebelum dan Sesudah Stock Split (Studi Kasus pada Perusahaan Go Public di BEI yang Melakukan Stock Split Tahun 2009-2013)

0 0 11

BAB II TINJAUAN PUSTAKA 2.1 Tinjauan Teoritis 2.1.1 Pasar Modal - Analisis Pengaruh EPS, PER dan M/B terhadap Return Saham pada Perusahaan Properti dan Real Estate yang Terdaftar di Bursa Efek Indonesia

0 0 25

Analisis Pengaruh EPS, PER dan M/B terhadap Return Saham pada Perusahaan Properti dan Real Estate yang Terdaftar di Bursa Efek Indonesia

0 0 12