• Tidak ada hasil yang ditemukan

Penyandian Data Teks Dengan Algoritma Elgamal Dan Algoritma Kompresi Data Dengan Algoritma Elias Gamma Code

N/A
N/A
Protected

Academic year: 2017

Membagikan "Penyandian Data Teks Dengan Algoritma Elgamal Dan Algoritma Kompresi Data Dengan Algoritma Elias Gamma Code"

Copied!
23
0
0

Teks penuh

(1)

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();

(2)

// 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();

(3)

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; }

(4)

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 ){

(5)

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

(6)

// 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();

(7)

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);

(8)

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 {

}

(9)

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);}

(10)

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); }

(11)

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 {

(12)

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;

(13)

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;

(14)

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]); }

(15)

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));

(16)

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");

(17)

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();

(18)

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()) {

(19)

}

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;

(20)

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(); }

(21)

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= "";

(22)

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);

(23)

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,

Referensi

Dokumen terkait

Penelitian ini mengangkat masalah submodul (A,B)-invarian dan submodul ketercapaian yang muncul dari suatu masalah dalam teori sistem linear atas daerah ideal utama (d.i.u) yang

Supervisi dalam rangka sistem Kerja LAKU SUSI di provinsi dilakukan secara terpadu untuk mengideniikasi dan memecahkan masalah laihan di BP3K dan kunjungan penyuluh

 Dengan menggunakan teks buku harian yang telah ditulis, siswa dapat membaca teks buku harian kegiatan keluarga dengan teliti dan percaya diri... MATERI PEMBELAJARAN.. 

Instrumen keuangan yang diterbitkan atau komponen dari instrumen keuangan tersebut, yang tidak diklasifikasikan sebagai liabilitas keuangan yang diukur pada nilai wajar

teknik yang digunakan dalam perancangan algoritma yang akan membagi ukuran (size) problem utama menjadi 2 subproblem, mencari solusi dari tiap subproblem, kemudian menggabungkan

3.2 Mengenal teks cerita narasi sederhana kegiatan dan bermain di lingkungan dengan bantuan guru atau teman dalam bahasa Indonesia lisan dan tulis yang dapat diisi dengan

b) Test Purpose : to verify that the DSEO Server complies with all requirements of GetProduct operation for the download of single file on-demand product. c) Test Method :. ฀

[r]