Listing Program
PembangkitKunci.java
package skripsi;
import java.util.*;
import javax.swing.JFileChooser; import java.io.File;
import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter;
public class PembangkitKunci extends javax.swing.JFrame { private JFileChooser dialog = new JFileChooser();
private void
jButton1ActionPerformed(java.awt.event.ActionEvent evt) { int isi = dialog.showSaveDialog(this);
if (isi == JFileChooser.APPROVE_OPTION) { // jika file di pilih untuk di simpan
File file = dialog.getSelectedFile(); try {
file.createNewFile();
PrintWriter out = new PrintWriter(new BufferedWriter(new
FileWriter(file))); out.print(txtP.getText() + " "); out.print(txtAlpha.getText() + " "); out.print(txtX.getText());
out.flush(); }
catch (IOException ex) {
System.err.println("Error: " + ex.getMessage()); }
} }
private void
jButton4ActionPerformed(java.awt.event.ActionEvent evt) { Random randGen = new Random();
// update text field.
txtP.setText(String.valueOf(prima)); txtAlpha.setText(String.valueOf(alpha)); txtA.setText(String.valueOf(a));
txtX.setText(String.valueOf(x)); }
private void
jButton2ActionPerformed(java.awt.event.ActionEvent evt) { new cover_1().setVisible(true);
private void
jButton3ActionPerformed(java.awt.event.ActionEvent evt) { int isi = dialog.showSaveDialog(this);
if (isi == JFileChooser.APPROVE_OPTION) { //menyimpan file
File file = dialog.getSelectedFile(); try {
file.createNewFile();
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(file)));
out.print(txtP.getText() + " "); out.print(txtA.getText());
out.flush(); }
catch (IOException ex) {
System.err.println("Error: " + ex.getMessage()); }
} }
// fungsi modulo exponensial
private int modExp(int bil, int pangkat, int pemodulo){ int hasil = 1;
for(int i = 1; i <= pangkat; i++){ hasil = hasil * bil % pemodulo; }
return hasil; }
// pembangkit bilangan acak
private int bilanganAcak(int panjang){ String myRandom = "";
for(int i = 0; i < panjang; i++){ myRandom += '9';
}
int bound = Integer.valueOf(myRandom); Random randGen = new Random();
return acak; }
// pembangkit bilangan prima
private int bangkitkanPrima(int panjang){ int acak = bilanganAcak(panjang); while(!isPrimeFermat(acak)){
acak = bilanganAcak(panjang); }
return acak; }
private boolean isPrimeFermat(int angka){ int banyakPercobaan = 0;
banyakPercobaan = String.valueOf(angka).length(); if(banyakPercobaan < 4){
banyakPercobaan = 4; }
// untuk menghitung hasil modulo exponen int hasilPangkat = 0;
int pangkat = angka - 1;
// objek bilangan random
Random randGen = new Random(); int angkaAcak = 0;
// lakukan percobaan sebanyak n kali
for(int i = 0; i < banyakPercobaan; i++){ angkaAcak = randGen.nextInt(angka);
hasilPangkat = modExp(angkaAcak, pangkat, angka); if(hasilPangkat != 1){
// jika ditemukan hasil yang bukan 1 maka angka bukan prima
return false; }
}
// jika untuk semua percobaan menghasilkan 1 maka angka adalah prima.
return true; }
private int akarPrimitif(int prima){ int alpha = 2;
while(!isPrimRoot(alpha, prima)){ alpha += 1;
}
return alpha; }
int q = (prima - 1) / 2;
int hasil1 = modExp(alpha, 2, prima); int hasil2 = modExp(alpha, q, prima);
// jika salah satunya bernilai 1, maka bukan primitif root
if((hasil1 == 1) || (hasil2 == 1)){ return false;
} else {
return true; }
}
FrmEnk.java
package skripsi;
import java.util.*;
import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JFileChooser; import java.io.File;
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader;
import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter;
import java.io.FileNotFoundException;
private void
jButton4ActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser fileChooser = new JFileChooser();
fileChooser.setCurrentDirectory(new File("d:\\FILE")); int result = fileChooser.showOpenDialog(jButton4); File file = fileChooser.getSelectedFile();
String filename = file.toString(); String text = null;
try {
FileReader fileReader = new FileReader(file); BufferedReader bufferedReader = new BufferedReader(fileReader);
try {
while ( ( text = bufferedReader.readLine ( ) ) != null ){
String p = tokens[0]; String a = tokens[1]; String x = tokens[2];
txtPrim.setText(p) txtAlpha.setText(a);
txtX.setText(x); }
bufferedReader.close(); } catch (IOException ex) {
Logger.getLogger(frmEnk.class.getName()).log(Level.SEVERE, null, ex);}
} catch (FileNotFoundException ex) {
Logger.getLogger(frmEnk.class.getName()).log(Level.SEVERE, null, ex);}
}
private void
jButton5ActionPerformed(java.awt.event.ActionEvent evt) { Random randGen = new Random();
KonversiChar converter = new KonversiChar(); BilanganAcak number = new BilanganAcak (); EnkripDekrip ed =new EnkripDekrip ();
// masukkan kunci publik ke variabel
Integer p = Integer.valueOf(txtPrim.getText()); int alpha = Integer.valueOf(txtAlpha.getText()); int x = Integer.valueOf(txtX.getText());
int b = p - 1;
// ambil plaintext dari kotak, masukkan ke variabel plaintext
String plaintext = txtPlainText.getText(); String ciphertext = "";
String text = ""; char karakter; int asciiCode = 0;
ArrayList chr = converter.getCharASCII(plaintext); //membuat nilai random
ArrayList rn = number.getBilanganAcak(plaintext, p); for (int i = 0; i < plaintext.length(); i++) {
char c = plaintext.charAt(i);
System.out.println(c + "\t" + chr.get(i).toString()+ "\t" + rn.get(i));
}
for(int i = 0; i < plaintext.length(); i++){ int rand = (int) (b * Math.random());
// ambil huruf dari plaintext
// enkripsi
asciiCode = (asciiCode * modExp(x, rand, p)) % p; int y = modExp(alpha, rand, p);
ciphertext += y + " "+String.valueOf(asciiCode)+ " " ;
}
txtCipherText.setText(ciphertext); }
private void
jButton1ActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser fileChooser = new JFileChooser();
fileChooser.setCurrentDirectory(new File("d:\\FILE")); int result = fileChooser.showOpenDialog(jButton1); String text = null;
File file = fileChooser.getSelectedFile(); String filename = file.toString();
jTextField2.setText(filename); try {
FileReader fileReader = new FileReader(file); BufferedReader bufferedReader = new BufferedReader(fileReader);
try {
while ( ( text = bufferedReader.readLine ( ) ) != null ) txtPlainText.append ( text + "\n" ) ; bufferedReader.close()
} catch (IOException ex) {
Logger.getLogger(frmEnk.class.getName()).log(Level.SEVERE, null, ex);}
} catch (FileNotFoundException ex) {
Logger.getLogger(frmEnk.class.getName()).log(Level.SEVERE, null, ex);}
}
private void
jButton6ActionPerformed(java.awt.event.ActionEvent evt) { new cover_1 ().setVisible(true);
}
private void
jButton3ActionPerformed(java.awt.event.ActionEvent evt) { int isi = dialog.showSaveDialog(this);
if (isi == JFileChooser.APPROVE_OPTION) { //menyimpan file
File file = dialog.getSelectedFile(); try {
file.createNewFile();
out.print(txtCipherText.getText()); out.flush();
}
catch (IOException ex) {
System.err.println("Error: " + ex.getMessage()); }
}
}
private void
jButton7ActionPerformed(java.awt.event.ActionEvent evt) { txtPlainText.setText("");
jTextField2.setText(""); txtCipherText.setText(""); jTextField1.setText(""); txtPrim.setText (""); txtAlpha.setText (""); txtX.setText (""); }
// fungsi modulo exponensial
private int modExp(int bil, int pangkat, int pemodulo){ int hasil = 1;
for(int i = 1; i <= pangkat; i++){ hasil = hasil * bil % pemodulo; }
return hasil; }
EnkripDekrip.java
package skripsi;
import java.math.BigInteger;
public class EnkripDekrip { private BigInteger gamma; private BigInteger delta; private char chr;
public String getEnkripsi(String chrASCII, String rnd,BigInteger g,
BigInteger p, BigInteger y, String pesan) { for (int i = 0; i < pesan.length(); i++) { BigInteger m = new BigInteger(chrASCII); BigInteger k = new BigInteger(rnd);
delta = ((y.pow(k.intValue()).mod(p)).multiply(m)).mod(p); } return gamma.toString() + " " + delta.toString()+" ";
}
public char getDekripsi(String nGamma, String nDelta, BigInteger p, BigInteger x, String pesan) {
int y = Integer.valueOf(nGamma); int c = Integer.valueOf(nDelta);
int pemodulo = p.intValue(); int pangkat = p.intValue() - 1 - x.intValue();
int z = this.modExp(y, pangkat, pemodulo); int m = this.modExp(c * z, 1 , pemodulo); chr = (char) m;
return chr; }
private int modExp(int bil, int pangkat, int pemodulo){ int hasil = 1;
for(int i = 1; i <= pangkat; i++){ hasil = hasil * bil % pemodulo; }
return hasil; }
}
FrmDek.java
package skripsi;
import java.util.*;
import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JFileChooser; import java.io.File;
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.IOException;
import java.io.FileNotFoundException; import java.io.FileWriter;
import java.io.PrintWriter; import java.math.BigInteger;
private static BigInteger p, g, y, x; public class pecah {
}
private void
jButton3ActionPerformed(java.awt.event.ActionEvent evt) { pecah = txtCip.getText().split(" ");
String chiper = txtCip.getText(); EnkripDekrip ed = new EnkripDekrip(); p = new BigInteger(txtP.getText()); x = new BigInteger(txtA.getText());
PecahChiperText pct = new PecahChiperText(); pct.setChiper(chiper);
ArrayList ngama = pct.getGamma();
ArrayList ndelta = pct.getDelta(); String hasilDekrip ="";
for (int i = 0; i < pecah.length/2; i++) {
char dek = ed.getDekripsi(ngama.get(i).toString(), ndelta.get(i).toString(), p, x, chiper);
hasilDekrip+= dek; }
System.out.println("\nPesan:"+hasilDekrip); txtPlain.setText(hasilDekrip);
}
private void
jButton1ActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser fileChooser = new JFileChooser();
fileChooser.setCurrentDirectory(new File("d:\\FILE")); int result = fileChooser.showOpenDialog(jButton1); String text = null;
File file = fileChooser.getSelectedFile(); String filename = file.toString();
jTextField3.setText(filename); try {
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
try {
while ( ( text = bufferedReader.readLine ( ) ) != null ) txtCip.append ( text + "\n" ) ;
bufferedReader.close(); } catch (IOException ex) {
Logger.getLogger(frmDek.class.getName()).log(Level.SEVERE, null, ex);}
} catch (FileNotFoundException ex) {
Logger.getLogger(frmDek.class.getName()).log(Level.SEVERE, null, ex);}
private void
btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { int isi = dialog.showSaveDialog(this);
if (isi == JFileChooser.APPROVE_OPTION) { // menyimpan file
File file = dialog.getSelectedFile(); try {
file.createNewFile();
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(file)));
out.print(txtPlain.getText()); out.flush();
}
catch (IOException ex) {
System.err.println("Error: " + ex.getMessage()); }
} }
private void
jButton5ActionPerformed(java.awt.event.ActionEvent evt) { new cover_1().setVisible(true);
}
private void
jButton2ActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser fileChooser = new JFileChooser();
fileChooser.setCurrentDirectory(new File("d:\\FILE")); int result = fileChooser.showOpenDialog(jButton2); File file = fileChooser.getSelectedFile();
String filename = file.toString(); String text = null;
try {
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
try {
while ( ( text = bufferedReader.readLine ( ) ) != null ){
String[] tokens = text.split("\\s+"); String prim = tokens[0];
String priv = tokens[1]; txtP.setText(prim);
txtA.setText(priv); }
Logger.getLogger(frmDek.class.getName()).log(Level.SEVERE, null, ex);}
} catch (FileNotFoundException ex) {
Logger.getLogger(frmDek.class.getName()).log(Level.SEVERE, null, ex);}
}
private void
jButton4ActionPerformed(java.awt.event.ActionEvent evt) { txtCip.setText("");
jTextField3.setText(""); txtPlain.setText(""); txtP.setText (""); txtA.setText (""); }
FrmKomp.java
package skripsi;
import java.io.BufferedReader;
import java.io.FileNotFoundException; import java.io.FileReader;
import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; import java.io.File;
import javax.swing.JFileChooser;
public class frmKomp extends javax.swing.JFrame { public String nama_file= "";
public String nama_file_kompresi= "";
private JFileChooser dialog = new JFileChooser();
private void
jButton2ActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser fileChooser = new JFileChooser();
fileChooser.setCurrentDirectory(new File("d:\\FILE")); int result = fileChooser.showOpenDialog(jButton1); String text = null;
File file = fileChooser.getSelectedFile(); String filename = file.toString();
nama_file = filename;
jTextField1.setText(filename); try {
BufferedReader bufferedReader = new BufferedReader(fileReader);
try {
while ( ( text = bufferedReader.readLine ( ) ) != null )
txtKomp.append ( text + "\n" ) ; bufferedReader.close();
} catch (IOException ex) {
Logger.getLogger(frmKomp.class.getName()).log(Level.SEVERE, null, ex);}
} catch (FileNotFoundException ex) {
Logger.getLogger(frmKomp.class.getName()).log(Level.SEVERE, null, ex);}
}
private void
jButton1ActionPerformed(java.awt.event.ActionEvent evt) { int isi = dialog.showSaveDialog(this);
if (isi == JFileChooser.APPROVE_OPTION) { //menyimpan file
File file = dialog.getSelectedFile();
nama_file_kompresi = file.getAbsolutePath(); KomGamma_1 kg = new KomGamma_1() ;
System.out.println(jTextField1.getText().toString()); try {
kg.proses (nama_file_kompresi, nama_file);
} catch (FileNotFoundException ex) { ex.printStackTrace();
} catch (IOException ex) { ex.printStackTrace(); }
private void
jButton4ActionPerformed(java.awt.event.ActionEvent evt) { jTextField1.setText("");
txtKomp.setText("");
}
private void
jButton3ActionPerformed(java.awt.event.ActionEvent evt) { new cover_1 ().setVisible(true);
}
KomGamma_1.java
package skripsi;
import java.io.FileInputStream;
import java.io.FileNotFoundException; import java.io.FileOutputStream;
import java.io.FileReader; import java.io.FileWriter; import java.io.IOException;
import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.*;
import javax.swing.JOptionPane;
public class KomGamma_1 {
StringBuffer content = new StringBuffer(); private static int[] fr;
private static String cs;
private static String[] vlbe; private static String[] eg;
private static Object file1;
private static String getCharSet(String st){ StringBuffer s = new StringBuffer();
int n = st.length();
for (int i = 0; i < n; i++){
String c = Character.toString(st.charAt(i)); if (s.indexOf(c) == -1)
s.append(c); }
return s.toString(); }
private static int countChar(String s, char ch){ String c = Character.toString(ch);
return (s.length() - s.replace(c, "").length()) / c.length();
}
private static int[] countFreq(String st){ String charset = getCharSet(st); int n = charset.length();
int[] freq = new int[n]; for (int i = 0; i < n; i++)
freq[i] = countChar(st, charset.charAt(i)); return freq;
}
private static void InsertionSort(int[] freq, String charset) {
fr = freq; cs = charset;
StringBuffer sb = new StringBuffer(charset); for (int i = 1; i < n; i++)
for (int j = 0; j < i; j++) if (fr[i] > fr[j]){
int temp = fr[i]; fr[i] = fr[j];
fr[j] = temp;
char ctemp = sb.charAt(i);
sb.setCharAt(i, sb.charAt(j)); sb.setCharAt(j, ctemp);
}
cs = sb.toString(); }
private static String dec2bin(int dec) {
StringBuffer bin = new StringBuffer(); int r = dec % 2;
bin.insert(0, r); dec = dec / 2; while (dec != 0){ r = dec % 2; bin.insert(0, r); dec = dec / 2; }
return bin.toString(); }
private static int bin2dec(String bin) { StringBuffer b = new StringBuffer(bin); b.reverse();
int n = 1; int dec = 0;
for (int i = 0; i < b.length(); i++) {
dec = dec + Character.getNumericValue(b.charAt(i)) * n; n = n * 2;
}
return dec; }
private static String string2stb(String st, String c, String[] s) {
StringBuffer stb = new StringBuffer(); for (int i = 0; i < st.length(); i++) {
String z = Character.toString(st.charAt(i)); int k = c.indexOf(z);
stb.append(s[k]); }
if (x != 0) { pad = 8 - x;
for (int i = 0; i < pad; i++) stb.append("0");
}
String d = dec2bin(pad); int y = 8 - d.length(); for (int i = 0; i < y; i++) stb.append("0");
stb.append(d);
return stb.toString(); }
private static String encode(String stb) { StringBuffer code = new StringBuffer();
for (int i = 0; i < stb.length(); i += 8) { x = stb.substring(i, i + 8);
char y = (char)(bin2dec(x)); code.append(y);
}
return code.toString(); }
private static String decode(String code) { StringBuffer sb = new StringBuffer(); int t = code.length();
for (int i = 0; i < t; i++) { char x = code.charAt(i);
StringBuffer y = new StringBuffer(dec2bin((int)x)); if (y.length() < 8) {
int z = 8 - y.length() % 8; for (int j = 0; j < z; j++) y.insert(0, "0");
}
sb.append(y); }
return sb.toString(); }
private static String decompress(String stb, String c, String[] s) {
StringBuffer st = new StringBuffer(); StringBuffer bit = new StringBuffer(); StringBuffer stb2;
int t = stb.length();
int pad = bin2dec(stb.substring(t - 8, t)); stb2 = new StringBuffer(stb.substring(0, t - pad - 8));
if
(Arrays.asList(s).contains(bit.toString())) {
int x =
Arrays.asList(s).indexOf(bit.toString()); st.append(c.charAt(x)); bit = new StringBuffer(); }
}
return st.toString();
}
private static void EliasGamma(String st) { int[] freq = countFreq(st);
String charset = getCharSet(st); int t = charset.length();
InsertionSort(freq, charset); freq = fr;
charset = cs;
eg = new String[t]; eg[0] = "1";
for (int i = 1; i < t; i++){ String b = dec2bin(i + 1); int M = b.length();
StringBuffer u = new StringBuffer(); for (int j = 1; j < M; j++)
u.append("0"); u.append("1");
StringBuffer s1 = new StringBuffer(); for (int j = 0; j < M; j++)
s1.append(b.charAt(j)).append(u.charAt(j));
StringBuffer s = new StringBuffer(s1.substring(1, s1.length()));
eg[i] = s.toString(); }
}
private static void processEliasGamma(String st) { System.out.println("=======================");
System.out.println("Elias Gamma Compression"); System.out.println("=======================\n"); System.out.println("String = " + st);
System.out.println("|String| = " + st.length() + "\n"); EliasGamma(st);
System.out.println("Char = " + cs);
System.out.println("|Char| = " + cs.length() + "\n"); System.out.println("Char\t\tFreq\t\tCode");
System.out.println(cs.charAt(i) + "\t\t\t" + fr[i] + "\t\t\t" + eg[i]);
System.out.println();
String stb = string2stb(st, cs, eg);
System.out.println("String-bits = " + stb);
int uncompressed_bits = st.length() * 8; int compressed_bits = stb.length();
System.out.println();
System.out.println("|compressed_bits| = " + compressed_bits);
System.out.println("|uncompressed_bits| = " + uncompressed_bits);
double CR = (double)(uncompressed_bits * 1.0) / compressed_bits;
double SS = (double)((1.0 - 1.0/CR) * 100); System.out.println();
System.out.println("Compression Ratio = " + CR + " : 1"); System.out.println("Space Savings = " + SS + " %");
String code = encode(stb); String dc = decode(code);
String ds = decompress(dc, cs, eg);
System.out.println("Decompressed_String = " + ds);
System.out.println("\nDecompressed_String sama dengan String asli? " + ds.equals(st));
System.out.println("\n\n"); }
public static void main (String[] args) throws IOException {
String namafile = "";
String nama_file_kompresi = ""; String st = BacaPlain(namafile); String kom = kompresi(st); String code = encode(kom); buatFH();
buatFH2();
buatFK(nama_file_kompresi, code); System.out.println("Penulisan Selesai");
}
public static void proses (String nama_file_kompresi, String namafile) throws FileNotFoundException, IOException{
String st = BacaPlain(namafile); String kom = kompresi(st);
String code = encode(kom); buatFH();
buatFH2();
System.out.println("Penulisan Selesai"); }
public static void proses2 (String nama_file_kompresi, String namafile) throws FileNotFoundException, IOException{ String cd = bacaEK(nama_file_kompresi);
String dekom = dekompresi (cd , namafile); tulis(dekom , namafile);
System.out.println("Penulisan Selesai"); }
public static String kompresi(String st){ String kompresi = "";
EliasGamma(st);
String stb = string2stb(st, cs, eg); kompresi = stb;
System.out.println("String-bits = " + stb);
int uncompressed_bits = st.length() * 8; int compressed_bits = stb.length();
System.out.println();
double CR = (double)(uncompressed_bits * 1.0) / compressed_bits;
double SS = (double)((1.0 - 1.0/CR) * 100); return kompresi;
}
public static String dekompresi(String stb, String nama_file){
String sc = bacaFH(); String[] ge ={};
try {
FileInputStream fos = new FileInputStream(nama_file); ObjectInputStream oos = new ObjectInputStream(fos); ge = (String[]) oos.readObject();
oos.close(); }
catch(Exception e){}
String dc = decode(stb);
String ds = decompress(dc, sc, ge); return ds;
}
public static void buatFH() throws FileNotFoundException, IOException{
File file = new File("c:/aaa/header.txt"); String content = cs;
try (FileOutputStream fop = new FileOutputStream(file)) { if (!file.exists()) {
}
byte[] contentInBytes = content.getBytes(); fop.write(contentInBytes);
fop.flush(); fop.close();
System.out.println("Done");
} catch (IOException e) { e.printStackTrace(); }
}
public static void buatFH2() throws FileNotFoundException, IOException{
FileOutputStream fos = new
FileOutputStream("c:\\aaa\\header2.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(eg);
oos.close(); }
public static void buatFK(String nama_file_kompresi, String hasil){
String ekstfile = nama_file_kompresi; File compressedfile = new File(ekstfile);
try (FileWriter fw = new FileWriter(compressedfile)) {
//---Menulis File Hasil Kompresi---
fw.write(hasil); fw.flush();
fw.close();
System.out.println("--header berhasil ditulis--"); }
catch (IOException ex) {
JOptionPane.showMessageDialog(null, ex.toString(), "Error", JOptionPane.ERROR);}
} //dekompresi
public static String bacaFH(){ String baca = "";
File file = new File("C:/aaa/header.txt"); FileInputStream fis = null;
try {
fis = new FileInputStream(file);
System.out.println("Total file size to read (in bytes) : " + fis.available());
int content;
baca += String.valueOf((char) content); }
} catch (IOException e) { e.printStackTrace(); } finally {
try {
if (fis != null) fis.close();
} catch (IOException ex) { ex.printStackTrace();} }
return baca; }
public static String BacaPlain(String namafile){ String baca = "";
File file = new File(namafile); FileInputStream fis = null; try {
fis = new FileInputStream(file);
System.out.println("Total file size to read (in bytes) : " + fis.available());
int content;
while ((content = fis.read()) != -1) { // convert to char and display it
baca += String.valueOf((char) content); }
} catch (IOException e) { e.printStackTrace(); } finally {
try {
if (fis != null) fis.close(); } catch (IOException ex) {
ex.printStackTrace(); }
}
return baca; }
public static void tulis(String tulis, String nf){ try {
String content = tulis; File file = new File(nf);
// if file doesnt exists, then create it if (!file.exists()) {
file.createNewFile(); }
BufferedWriter bw = new BufferedWriter(fw); bw.write(content);
bw.close(); System.out.println("Done");
} catch (IOException e) { e.printStackTrace();} }
public static String bacaEK(String Fe){ StringBuffer content1 = new StringBuffer(); String hasil = "";
BufferedReader bufferedReader1 = null; try {
int r;
String text = null;
bufferedReader1 = new BufferedReader(new FileReader(Fe)); while ((r = bufferedReader1.read())!= -1) {
char ch =(char)r; content1.append(ch);}
if (bufferedReader1 != null) { bufferedReader1.close();}
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "File Tidak Ditemukan!", "Error", JOptionPane.ERROR);
}
hasil = String.valueOf(content1); return hasil;
}
FrmDekom.java
package skripsi;
import java.io.BufferedReader;
import java.io.FileNotFoundException; import java.io.FileReader;
import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; import java.io.File;
import javax.swing.JFileChooser;
public class frmDekom extends javax.swing.JFrame { public String nama_file= "";
private String AlamatFileDekompresi;
private void
jButton2ActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser fileChooser = new JFileChooser();
fileChooser.setCurrentDirectory(new File("d:\\FILE")); int result = fileChooser.showOpenDialog(jButton1); String text = null;
File file = fileChooser.getSelectedFile(); String filename = file.toString();
nama_file = filename;
jTextField1.setText(filename); try {
FileReader fileReader = new FileReader(file); BufferedReader bufferedReader = new BufferedReader(fileReader);
try {
while ( ( text = bufferedReader.readLine ( ) ) != null )
txtKomp.append ( text + "\n" ) ; bufferedReader.close();
} catch (IOException ex) {
Logger.getLogger(frmDekom.class.getName()).log(Level.SEVERE , null, ex); }
} catch (FileNotFoundException ex) { }
}
private void
jButton1ActionPerformed(java.awt.event.ActionEvent evt) { int isi = dialog.showSaveDialog(this);
if (isi == JFileChooser.APPROVE_OPTION) { //menyimpan file
File file = dialog.getSelectedFile();
AlamatFileDekompresi = file.getAbsolutePath(); BacaDekompresi kg = new BacaDekompresi() ;
System.out.println(jTextField1.getText().toString()); try {
kg.proses_dekompresi ( nama_file , AlamatFileDekompresi); } catch (FileNotFoundException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace();} }
JOptionPane.showMessageDialog(rootPane, "File berhasil didekompresi", "Compression", JOptionPane.INFORMATION_MESSAGE);
DAFTAR RIWAYAT HIDUP
Saya yang bertanda tangan dibawah ini :
DATA PRIBADI
Nama : Wiwin Agustini Lubis
Alamat : Jl. Jamin Ginting, Padangbulan Sumber Hp : 085371331230
E-Mail : agustiniwiwin@gmail.com
Tempat/ tanggal lahir : Padangsidimpuan, 26 Agustus 1992 Jenis Kelamin : Perempuan
Status : Belum Menikah
PENDIDIKAN
1998 â 2004 : SD Negeri Inpres Sadabuan 2004 â 2007 : SMP Negeri 4, Padangsidimpuan 2007 â 2010 : SMA Negeri 1 Padangsidimpuan
2010-2013 : DIII Teknik Informatika Universitas Sumatera Utara 2013-2015 : Ekstensi S-1ILKOM Universitas Sumatera Utara
SEMINAR
ï§ Seminar Nasional Literasi Informasi (SENARAI) Universitas Sumatera Utara.
Demikianlah Daftar Riwayat Hidup ini saya perbuat dengan sebenarnya.
Hormat Saya,