• Tidak ada hasil yang ditemukan

Analisis dan Implementasi Algoritma Kompresi Subexponential Codes dan Inverted Elias Delta Pada File Teks

N/A
N/A
Protected

Academic year: 2017

Membagikan "Analisis dan Implementasi Algoritma Kompresi Subexponential Codes dan Inverted Elias Delta Pada File Teks"

Copied!
23
0
0

Teks penuh

(1)

Universitas Sumatera Utara LISTING PROGRAM

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace AplikasiKompresiTeks

{

class ed

{

}

}

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

(2)

Universitas Sumatera Utara

{

public partial class frmHome : Form

{

public frmHome()

{

InitializeComponent();

}

private void panel1_Paint(object sender,

PaintEventArgs e)

{

}

private void button2_Click(object sender,

EventArgs e)

{

//'InvertedEliasDeltaCodes IED = new

InvertedEliasDeltaCodes()

FormCompression frm = new FormCompression();

frm.Show();

this.Hide();

(3)

Universitas Sumatera Utara

private void button1_Click(object sender,

EventArgs e)

{

}

private void button3_Click(object sender,

EventArgs e)

{

Form3 frm = new Form3();

frm.Show();

this.Hide();

}

private void button4_Click(object sender,

EventArgs e)

{

Form4 frm = new Form4();

frm.Show();

this.Hide();

}

private void button5_Click(object sender,

(4)

Universitas Sumatera Utara

{

Form5 frm = new Form5();

frm.Show();

this.Hide();

}

private void button6_Click(object sender,

EventArgs e)

{

if (MessageBox.Show("Yakin Untuk Keluar?",

"Exit", MessageBoxButtons.OKCancel) == DialogResult.OK)

{

Application.Exit();

}

}

private void Form1_Load(object sender, EventArgs

e)

{

}

private void button7_Click(object sender,

EventArgs e)

(5)

Universitas Sumatera Utara

}

}

}

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

namespace AplikasiKompresiTeks

{

public partial class FormCompression : Form

{

int waktu=0;

string algort;

public FormCompression()

(6)

Universitas Sumatera Utara

InitializeComponent();

}

private void button1_Click(object sender,

EventArgs e)

{

frmHome frm = new frmHome();

frm.Show();

this.Close();

}

private void button3_Click(object sender,

EventArgs e)

{

Form3 frm = new Form3();

frm.Show();

this.Close();

}

private void button4_Click(object sender,

EventArgs e)

{

Form4 frm = new Form4();

frm.Show();

(7)

Universitas Sumatera Utara

}

private void button5_Click(object sender,

EventArgs e)

{

Form5 frm = new Form5();

frm.Show();

this.Close();

}

private void button6_Click(object sender,

EventArgs e)

{

if (MessageBox.Show("Yakin Untuk keluar?",

"Exit", MessageBoxButtons.OKCancel) == DialogResult.OK)

{

Application.Exit();

}

}

private void TextBox1_TextChanged(object sender,

EventArgs e)

{

(8)

Universitas Sumatera Utara

private void button8_Click(object sender,

EventArgs e)

{

OpenFileDialog openFiledialog1 = new

OpenFileDialog();

openFiledialog1.Filter = "Text Files|*.txt";

if (openFiledialog1.ShowDialog() ==

System.Windows.Forms.DialogResult.OK)

{

pilihfile.Text =

openFiledialog1.FileName;

String aFilename =

openFiledialog1.FileName;

MessageBox.Show("File Teks Telah

Dipilih");

}

}

private void button10_Click(object sender,

EventArgs e)

{

pilihfile.Text = "";

savefile.Text = "";

(9)

Universitas Sumatera Utara

cr.Text = "";

ss.Text = "";

tp.Text = "";

}

private void btnCompress_Click(object sender,

EventArgs e)

{

System.Diagnostics.Stopwatch watch = new

System.Diagnostics.Stopwatch();

if (algort != "Subexponential Codes")

{

watch.Start();

TextReader baca = new

StreamReader(pilihfile.Text);

String st = baca.ReadToEnd();

SubexponentialCompression SPC = new

SubexponentialCompression();

SPC.RunSubexponentialCompression(st,

savefile.Text);

double Cratio = SPC.CR;

rc.Text = SPC.RC.ToString();

cr.Text = SPC.CR.ToString();

(10)

Universitas Sumatera Utara

watch.Stop();

tp.Text =

watch.Elapsed.TotalSeconds.ToString();

}

else

{

watch.Start();

TextReader baca = new

StreamReader(pilihfile.Text);

String st = baca.ReadToEnd();

InvertedEliasDeltaCodes ed = new

InvertedEliasDeltaCodes();

ed.RunInvertedEliasDelta(st,

savefile.Text);

double Cratio = ed.CR;

rc.Text = ed.RC.ToString();

cr.Text = ed.CR.ToString();

ss.Text = ed.SS.ToString();

watch.Stop();

tp.Text =

watch.Elapsed.TotalSeconds.ToString();

}

(11)

Universitas Sumatera Utara

private void button7_Click(object sender,

EventArgs e)

{

SaveFileDialog SFD= new SaveFileDialog();

if (algort != "Subexponential Codes")

{

SFD.Filter = "Text Files|*.iedc";

}

else

{

SFD.Filter = "Text Files|*.spc";

}

if (SFD.ShowDialog() ==

System.Windows.Forms.DialogResult.OK)

{

savefile.Text = SFD.FileName;

}

}

private void FormCompression_Load(object sender,

EventArgs e)

{

(12)

Universitas Sumatera Utara

}

private void timer1_Tick(object sender, EventArgs

e)

{

waktu += 1;

}

private void

RBSubexponentialCodes_CheckedChanged(object sender,

EventArgs e)

{

algort = "Subexponential Codes";

}

private void

RBInvertedEliasDelta_CheckedChanged(object sender,

EventArgs e)

{

algort = "Inverted Elias Delta";

}

private void GroupBox3_Enter(object sender,

EventArgs e)

(13)

Universitas Sumatera Utara

}

private void rc_TextChanged(object sender,

EventArgs e)

{

}

}

}

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace AplikasiKompresiTeks

{

public partial class Form4 : Form

(14)

Universitas Sumatera Utara

public Form4()

{

InitializeComponent();

}

private void Form4_Load(object sender, EventArgs

e)

{

}

private void button1_Click(object sender,

EventArgs e)

{

frmHome frm = new frmHome();

frm.Show();

this.Close();

}

}

}

(15)

Universitas Sumatera Utara

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace AplikasiKompresiTeks

{

public partial class Form5 : Form

{

public Form5()

{

InitializeComponent();

}

private void Form5_Load(object sender, EventArgs

e)

{

}

private void label2_Click(object sender,

(16)

Universitas Sumatera Utara

{

}

private void Label1_Click(object sender,

EventArgs e)

{

}

private void Label4_Click(object sender,

EventArgs e)

{

}

private void Label14_Click(object sender,

EventArgs e)

{

}

private void pictureBox3_Click(object sender,

EventArgs e)

(17)

Universitas Sumatera Utara

}

private void button1_Click(object sender,

EventArgs e)

{

frmHome frm = new frmHome();

frm.Show();

this.Close();

}

}

}

public void InvertedEliasDelta(String st) {

int[] freq = CountFreq(st);

String charset = GetCharSet(st);

int t = charset.Length;

InsertionSort(freq, charset);

freq = fr;

charset = cs;

iedc = new String[t];

int c = 0;

for (int n = 1; n < t + 1; n++) {

String b = DecToBin(n);

int M = b.Length;

(18)

Universitas Sumatera Utara

StringBuilder u = new StringBuilder();

u = MultiAppend(u, "0", Mb.Length - 1);

u.Append(Mb);

String b1 = b.Substring(1, M - 1);

u.Append(b1);

iedc[c] = u.ToString();

c++;

}

for (int i = 0; i < t; i++)

iedc[i] = invert(iedc[i]);

}

public void RunInvertedEliasDelta(String st,String

namaFile) {

InvertedEliasDelta(st);

stb = StringToStb(st, cs, iedc);

//simpan FIle

int numOfBytes = stb.Length / 8;

byte[] bytes = new byte[numOfBytes];

for (int i = 0; i < numOfBytes; ++i)

{

bytes[i] = Convert.ToByte(stb.Substring(8 * i,

8), 2);

}

(19)

Universitas Sumatera Utara

int uncompressed_bits = st.Length * 8;

int compressed_bits = stb.Length;

RC = uncompressed_bits / compressed_bits;

CR = (compressed_bits * 100) / uncompressed_bits;

SS = (uncompressed_bits - compressed_bits) / 4;

}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Windows.Forms;

namespace AplikasiKompresiTeks

{

static class Program

{

/// <summary>

/// The main entry point for the application.

/// </summary>

[STAThread]

static void Main()

{

Application.EnableVisualStyles();

(20)

Universitas Sumatera Utara

Application.Run(new frmHome());

}

}

}

private static void SubexponentialCodes(String st) {

int MAX = 64;

String charset = GetCharSet(st);

int t = charset.Length;

String[] suffix = new String[MAX];

suffix[0] = "00";

suffix[1] = "01";

suffix[2] = "10";

suffix[3] = "11";

suffix[4] = "00";

suffix[5] = "01";

suffix[6] = "10";

suffix [7] = "11";

suffix[8] = "000";

suffix[9] = "001";

suffix[10] = "010";

(21)

Universitas Sumatera Utara

suffix[12] = "100";

suffix[13] = "101";

suffix[14] = "110";

suffix[15] = "111";

suffix[16] = "0000";

suffix[17] = "0001";

suffix[18] = "0010";

suffix[19] = "0011";

suffix[20] = "0100";

suffix[21] = "0101";

suffix[22] = "0110";

suffix[23] = "0111";

suffix[24] = "1000";

suffix[25] = "1001";

suffix[26] = "1010";

suffix[27] = "1011";

suffix[28] = "1100";

suffix[29] = "1101";

suffix[30] = "1110";

suffix[31] = "1111";

(22)

Universitas Sumatera Utara

suffix[32 + i] = Pad(DecToBin(i),

5).ToString();

String[] sc = new String[MAX];

for (int i = 0; i < MAX; i++) {

StringBuilder prefix = new StringBuilder();

if (i < 4)

prefix = new StringBuilder("0");

else if (i >= 4 && i < 8)

prefix = new StringBuilder("10");

else if (i >= 8 && i < 16)

prefix = new StringBuilder("110");

else if (i >= 16 && i < 32)

prefix = new StringBuilder("1110");

else if (i >= 32 && i < 64)

prefix = new StringBuilder("11110");

sc[i] = prefix + suffix[i];

}

ccc = new String[t];

for (int i = 0; i < t; i++)

ccc[i] = sc[i];

(23)

Universitas Sumatera Utara

public void RunSubexponentialCompression(String st,

String namaFile)

{

int[] freq = CountFreq(st);

String charset = GetCharSet(st);

int t = charset.Length;

InsertionSort(freq, charset);

SubexponentialCodes(st);

String stb = StringToStb(st, cs, ccc);

int uncompressed_bits = st.Length * 8;

int compressed_bits = stb.Length;

int numOfBytes = stb.Length / 8;

byte[] bytes = new byte[numOfBytes];

for (int i = 0; i < numOfBytes; ++i)

{

bytes[i] = Convert.ToByte(stb.Substring(8 * i,

8), 2);

}

File.WriteAllBytes(namaFile, bytes);

RC = uncompressed_bits / compressed_bits;

CR = (compressed_bits * 100) / uncompressed_bits;

SS = (uncompressed_bits - compressed_bits) / 4;

}

Referensi

Dokumen terkait

Microsoft Power Point akan membantu sebuah gagasan menjadi lebih menarik dan jelas tujuannya jika dipresentasikan karena Microsoft Power Point akan membantu dalam pembuatan

Teknologi Mekanik, Mekanika Teknik dan Elemen Mesin 144 C3.. Teknik Mekanik Mesin

menggunakan MS Word untuk bekerja (mengetik).Jendela utama terdiri dari jendela dokumen. (tempat untuk memasukkan teks dan penyuntingan) dan jendela perintah

bahwa berdasarkan pertimbangan sebagaimana dimaksud dalam huruf a, perlu menetapkan Keputusan Bupati Bantul tentang Pembentukan Forum Kelompok Kerja Operasional Desa

bahwa berdasarkan pertimbangan sebagaimana dimaksud huruf a, perlu menetapkan Keputusan Bupati Bantul tentang Pembentukan Majelis dan Sekretariat Tuntutan

Pendampingan Kegiatan DAK Infrastruktur Irigasi Pekerjaan Paket 38 Rehabilitasi.. Jaringan

Result and Discussions 4.1 Liability Based on Fault Liability based on fault in principle refers to Article 1 paragraph (1) of the Criminal Code (KUHP) which explicitly states that

- Cara mengajukan : Untuk mengajukan fasilitas kartu kredit ini, anda dapat menghubungi Account Ofcer di kantor cabang Bank Ekonomi terdekatb. -