• Tidak ada hasil yang ditemukan

Perbandingan Kinerja Algoritma Kompresi Inverted Elias Gamma dan Capocelli Code Pada File Teks

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perbandingan Kinerja Algoritma Kompresi Inverted Elias Gamma dan Capocelli Code Pada File Teks"

Copied!
35
0
0

Teks penuh

(1)

viii

LAMPIRAN LISTING PROGRAM

1. Form Home

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.Runtime.InteropServices; namespace WindowsFormsApplication1 {

public partial class Form1 : Form {

public Form1() {

InitializeComponent(); }

private void Form1_Load(object sender, EventArgs e) {

}

private void compressToolStripMenuItem_Click_1(object sender, EventArgs e) {

(2)

ix

// Set the Parent Form of the Child window. newMDIChild.MdiParent = this;

// Display the new form. newMDIChild.Show(); }

private void exitToolStripMenuItem_Click(object sender, EventArgs e) {

Form5 newMDIChild = new Form5(); newMDIChild.MdiParent = this; newMDIChild.Show();

}

private void decompressToolStripMenuItem_Click(object sender, EventArgs e) {

Form3 newMDIChild = new Form3(); newMDIChild.MdiParent = this; newMDIChild.Show();

}

private void aboutMeToolStripMenuItem_Click(object sender, EventArgs e) {

Form4 newMDIChild = new Form4(); newMDIChild.MdiParent = this; newMDIChild.Show();

}

private void helpToolStripMenuItem_Click(object sender, EventArgs e) {

System.Windows.Forms.Application.Exit(); }

(3)

x

} }

2. Form Kompresi

using System; using System.IO;

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.Runtime.InteropServices.ComTypes;

namespace WindowsFormsApplication1 {

public partial class Form2 : Form {

public string kalimat; public string nwkalimat; public Form2()

{

InitializeComponent();

(4)

xi

private void Form2_Load(object sender, EventArgs e) {

}

private void button1_Click(object sender, EventArgs e) {

DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog. if (result == DialogResult.OK) // Test result.

{

string file = openFileDialog1.FileName; textBox1.Text = file;

}

}

public static String readingfiledoc(String kode) {

Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();

object miss = System.Reflection.Missing.Value;

Microsoft.Office.Interop.Word.Document docs = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss);

string totaltext = "";

for (int i = 0; i < docs.Paragraphs.Count; i++) {

totaltext += " \r\n " + docs.Paragraphs[i + 1].Range.Text.ToString(); }

(5)

xii

docs.Close(); word.Quit(); }

private void button2_Click(object sender, EventArgs e) {

string target = textBox1.Text;

string extension = Path.GetExtension(target); if (extension == ".docx" | extension == ".txt") {

string namafolder=Path.GetDirectoryName(target);

string namafile = Path.GetFileNameWithoutExtension(target);

//calling Run inverted elias gamma function on inverted elias gamma clas invertedeliasgamma.runInvertedEliasGamma(target, namafolder, namafile);

//attach process result to inverted elias gamma text richTextBox1.Text =invertedeliasgamma.kalimatieg;

//calling Run Capocelli function on capocelli class

capocelli.RunCapocelliCompression(target, namafolder, namafile);

//attach process result to capocelli text nwkalimat = capocelli.kalimatcpl; richTextBox3.Text = nwkalimat;

} else {

string msg = "Your file extension are not txt or docx !!!"; kotakpesan(msg);

(6)

xiii

}

private void kotakpesan(string msg) {

string message = msg; string caption = "Warning";

MessageBoxButtons buttons = MessageBoxButtons.OK; DialogResult result;

// Displays the MessageBox.

result = MessageBox.Show(message, caption, buttons);

if (result == System.Windows.Forms.DialogResult.OK) {

// Closes the parent form. // this.Close();

} }

}

public class invertedeliasgamma{ private static int[] fr;

private static String cs;

public static String kalimatieg; private static String[] egc; private static String[] iegc;

public static String GetCharSet(String st) {

{

char c = st[i];

(7)

xiv

s.Append(c); }

return s.ToString(); }

private static int CountChar(String s, char ch) {

return s.Split(ch).Length - 1; }

public 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[i]); return freq;

}

public static void InsertionSort(int[] freq, String charset) {

fr = freq; cs = charset;

int n = charset.Length;

StringBuilder sb = new StringBuilder(charset); for (int i = 1; i < n; i++)

for (int j = 0; j < i; j++) if (fr[i] > fr[j]) {

(8)

xv

sb[j] = sbtemp; }

cs = sb.ToString(); }

public static String Reverse(String sb) {

char[] charArray = sb.ToCharArray(); Array.Reverse(charArray);

return new String(charArray); }

public static int BinToDec(String bin) {

StringBuilder sb = new StringBuilder(Reverse(bin)); int n = 1;

int dec = 0;

for (int i = 0; i < sb.Length; i++) {

dec = dec + (int)(Char.GetNumericValue(sb[i])) * n; n = n * 2;

}

return dec; }

public static String DecToBin(int dec) {

StringBuilder bin = new StringBuilder(); int r = dec % 2;

(9)

xvi

r = dec % 2; bin.Insert(0, r); dec = dec / 2; }

return bin.ToString(); }

// converts strings into stringbits

public static String StringToStb(String st, String c, String[] s) {

{

String z = Char.ToString(st[i]); int k = c.IndexOf(z);

stb.Append(s[k]); }

int x = stb.Length % 8; int pad = 0;

if (x != 0) {

pad = 8 - x;

for (int i = 0; i < pad; i++) stb.Append("0"); }

String d = DecToBin(pad); int y = 8 - d.Length; for (int i = 0; i < y; i++) stb.Append("0"); stb.Append(d); return stb.ToString(); }

(10)

xvii

{

for (int i = 0; i < t; i++) sb.Append(s); return sb;

}

private static void InvertedEliasGamma(String st) {

int[] freq = CountFreq(st); String charset = GetCharSet(st); int t = charset.Length;

InsertionSort(freq, charset); freq = fr;

charset = cs;

egc = new String[t]; iegc = new String[t]; int c = 0;

int ic = 0;

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

String b = DecToBin(n); int M = b.Length;

StringBuilder u = new StringBuilder(); u = MultiAppend(u, "0", M - 1); u.Append("1");

StringBuilder s1 = new StringBuilder(); for (int j = 0; j < M; j++)

{

s1.Append(b[j]); s1.Append(u[j]); }

String s2 = s1.ToString();

(11)

xviii

egc[c] = s; c++;

StringBuilder s3 = new StringBuilder(); for (int j = 0; j < s.Length; j++)

{

if (s[j] == '0') s3.Append("1"); else

s3.Append("0"); }

iegc[ic] = s3.ToString(); ic++;

} }

public static void runInvertedEliasGamma(string target, string folder, string nama){

string content=Form2.readingfiledoc(target); InvertedEliasGamma(content);

String stb = StringToStb(content, cs, iegc); int uncompressed_bits = target.Length * 8; int compressed_bits = stb.Length;

double CR = (uncompressed_bits * 1.0) / compressed_bits; double SS = (1.0 - 1.0 / CR) * 100;

kalimatieg = "String = " + content.Length + "\n" + "Char = " + cs + "\n" + "Compressed_bits = " + compressed_bits + "\n" + "Uncompressed_bits = " + uncompressed_bits + "\n" + "Compression Ratio = " + CR + " : 1" + "\n" + "Space Savings = " + SS + " %" + "\n Compressi Success 100%";

string text = stb;

(12)

xix

} }

//end inverted elias gamma class

public class capocelli { private static int[] vr; private static String ass; public static String kalimatcpl; private static String[] vc;

private static String GetCharSet(String st) {

StringBuilder s = new StringBuilder(); int n = st.Length;

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

char c = st[i];

if (s.ToString().IndexOf(c) == -1) s.Append(c);

}

return s.ToString(); }

private static int CountChar(String s, char ch) {

return s.Split(ch).Length - 1; }

private static int[] Countvreq(String st) {

String charset = GetCharSet(st); int n = charset.Length;

(13)

xx

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

vreq[i] = CountChar(st, charset[i]); return vreq;

}

private static void InsertionSort(int[] vreq, String charset) {

vr = vreq; ass = charset;

int n = charset.Length;

StringBuilder sb = new StringBuilder(charset); for (int i = 1; i < n; i++)

for (int j = 0; j < i; j++) if (vr[i] > vr[j]) {

int vrtemp = vr[i]; vr[i] = vr[j]; vr[j] = vrtemp; char sbtemp = sb[i]; sb[i] = sb[j];

sb[j] = sbtemp; }

ass = sb.ToString(); }

public static String Reverse(String sb) {

char[] charArray = sb.ToCharArray(); Array.Reverse(charArray);

return new String(charArray); }

(14)

xxi

{

StringBuilder bin = new StringBuilder(); 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 BinToDec(String bin) {

StringBuilder sb = new StringBuilder(Reverse(bin)); int n = 1;

int dec = 0;

for (int i = 0; i < sb.Length; i++) {

dec = dec + (int)(Char.GetNumericValue(sb[i])) * n; n = n * 2;

}

return dec; }

// converts strings into stringbits

public static String StringToStb(String st, String c, String[] s) {

(15)

xxii

{

String z = Char.ToString(st[i]); int k = c.IndexOf(z);

stb.Append(s[k]); }

int x = stb.Length % 8; int pad = 0;

if (x != 0) {

pad = 8 - x;

for (int i = 0; i < pad; i++) stb.Append("0"); }

String d = DecToBin(pad); int y = 8 - d.Length; for (int i = 0; i < y; i++) stb.Append("0"); stb.Append(d); return stb.ToString(); }

private static StringBuilder Pad(String bin, int bit) {

StringBuilder sb = new StringBuilder(); for (int i = 0; i < bit - bin.Length; i++) sb.Append("0");

sb.Append(bin); return sb; }

(16)

xxiii

int MAX = 20;

String charset = GetCharSet(st); int t = charset.Length;

StringBuilder suffix = new StringBuilder(); suffix.Append("0");

for (int i = 0; i < r; i++) suffix.Append("1");

String[] cc = new String[(int)Math.Pow(2, MAX) + 1]; cc[0] = suffix.ToString();

int prefix_length = 1; int count = 1;

while (true) {

for (int i = 0; i < (int)Math.Pow(2, prefix_length); i++) {

StringBuilder prefix = Pad(DecToBin(i), prefix_length); if ((prefix.ToString()).Contains(suffix.ToString()) == false) cc[count++] = (prefix.Append(suffix)).ToString(); }

prefix_length += 1; if (count > t) break; }

vc = new String[t]; for (int i = 0; i < t; i++) vc[i] = cc[i];

}

public static void RunCapocelliCompression(string target, string folder, string nama)

{

(17)

xxiv

string content=Form2.readingfiledoc(target); int[] vreq =Countvreq(content);

String charset = GetCharSet(content); int t = charset.Length;

InsertionSort(vreq, charset); Capocelli(content, r);

String stb = StringToStb(content, ass, vc); int uncompressed_bits = content.Length * 8; int compressed_bits = stb.Length;

double CR = (uncompressed_bits * 1.0) / compressed_bits; double SS = (1.0 - 1.0 / CR) * 100;

kalimatcpl = "String = " + content.Length + "\n" + "Char = " + ass + "\n" + "R =" + r + "\n" + "Compressed_bits = " + compressed_bits + "\n" +

"Uncompressed_bits = " + uncompressed_bits + "\n" + "Compression Ratio = " + CR + " : 1" + "\n" + "Space Savings = " + SS + " %" + "\n Compressi Success 100%"; string text = stb;

string path = folder + "/"+ nama +".cpl"; System.IO.File.WriteAllText(path, text);

}

}

}

3. Form Uncompresi

using System; using System.IO;

(18)

xxv

using System.ComponentModel; using System.Data;

using System.Drawing; using System.Linq; using System.Text;

using System.Windows.Forms;

namespace WindowsFormsApplication1 {

public partial class Form3 : Form {

public Form3() {

InitializeComponent();

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;

}

private void Form3_Load(object sender, EventArgs e) {

}

private void button1_Click(object sender, EventArgs e) {

DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog. if (result == DialogResult.OK) // Test result.

{

(19)

xxvi

} }

public static String readingfiledoc(String kode) {

Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();

object miss = System.Reflection.Missing.Value; object path = kode;

object readOnly = true; object visible = false;

Microsoft.Office.Interop.Word.Document docs = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss);

string totaltext = "";

for (int i = 0; i < docs.Paragraphs.Count; i++) {

totaltext += " \r\n " + docs.Paragraphs[i + 1].Range.Text.ToString(); }

string text = totaltext; return text;

docs.Close(); word.Quit(); }

private void button2_Click(object sender, EventArgs e) {

string target = textBox1.Text;

(20)

xxvii

if (extension == ".cpl") {

string namafolder = Path.GetDirectoryName(target);

string namafile = Path.GetFileNameWithoutExtension(target); string target1= namafolder+"/"+namafile+".docx";

//calling Run inverted elias gamma function on inverted elias gamma clas CapocelliDecompression.RunDecompressionCpl(target,target1, namafolder, namafile);

//attach process result to inverted elias gamma text richTextBox2.Text = CapocelliDecompression.kalimat; richTextBox1.Text = CapocelliDecompression.klm;

}

else if (extension == ".ieg") {

string namafolder = Path.GetDirectoryName(target);

string namafile = Path.GetFileNameWithoutExtension(target); string target1 = namafolder + "/" + namafile + ".docx";

//calling Run inverted elias gamma function on inverted elias gamma clas IegDecompression.RunDecompressionIeg(target, target1, namafolder, namafile);

//attach process result to inverted elias gamma text richTextBox2.Text = IegDecompression.kalimat;

richTextBox1.Text = IegDecompression.klm; }

else {

string msg = "Your file extension are not ieg or cpl !!!"; kotakpesan(msg);

(21)

xxviii

private void kotakpesan(string msg) {

string message = msg; string caption = "Warning";

MessageBoxButtons buttons = MessageBoxButtons.OK; DialogResult result;

// Displays the MessageBox.

result = MessageBox.Show(message, caption, buttons);

if (result == System.Windows.Forms.DialogResult.OK) {

// Closes the parent form. // this.Close();

} } }

public class CapocelliDecompression {

private static int[] vr; private static String ass; public static String klm; public static String kalimat; private static String[] vc;

private static String GetCharSet(String st) {

(22)

xxix

int n = st.Length; for (int i = 0; i < n; i++) {

char c = st[i];

if (s.ToString().IndexOf(c) == -1) s.Append(c);

}

return s.ToString(); }

private static int CountChar(String s, char ch) {

return s.Split(ch).Length - 1; }

private static int[] Countvreq(String st) {

String charset = GetCharSet(st); int n = charset.Length;

int[] vreq = new int[n]; for (int i = 0; i < n; i++)

vreq[i] = CountChar(st, charset[i]); return vreq;

}

private static void InsertionSort(int[] vreq, String charset) {

vr = vreq; ass = charset;

int n = charset.Length;

StringBuilder sb = new StringBuilder(charset); for (int i = 1; i < n; i++)

(23)

xxx

if (vr[i] > vr[j]) {

int vrtemp = vr[i]; vr[i] = vr[j]; vr[j] = vrtemp; char sbtemp = sb[i]; sb[i] = sb[j];

sb[j] = sbtemp; }

ass = sb.ToString(); }

public static String Reverse(String sb) {

char[] charArray = sb.ToCharArray(); Array.Reverse(charArray);

return new String(charArray); }

private static String DecToBin(int dec) {

StringBuilder bin = new StringBuilder(); int r = dec % 2;

bin.Insert(0, r); dec = dec / 2; while (dec != 0) {

r = dec % 2; bin.Insert(0, r); dec = dec / 2; }

(24)

xxxi

private static int BinToDec(String bin) {

StringBuilder sb = new StringBuilder(Reverse(bin)); int n = 1;

int dec = 0;

for (int i = 0; i < sb.Length; i++) {

dec = dec + (int)(Char.GetNumericValue(sb[i])) * n; n = n * 2;

}

return dec; }

// converts strings into stringbits

private static String StringToStb(String st, String c, String[] s) {

StringBuilder stb = new StringBuilder(); for (int i = 0; i < st.Length; i++)

{

String z = Char.ToString(st[i]); int k = c.IndexOf(z);

stb.Append(s[k]); }

int x = stb.Length % 8; int pad = 0;

if (x != 0) {

pad = 8 - x;

for (int i = 0; i < pad; i++) stb.Append("0"); }

(25)

xxxii

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

StringBuilder code = new StringBuilder(); for (int i = 0; i < stb.Length; i += 8) {

String x = stb.Substring(i, 8); char y = (char)(BinToDec(x)); code.Append(y);

}

return code.ToString(); }

private static String Decode(String code) {

StringBuilder sb = new StringBuilder(); int t = code.Length;

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

char x = code[i];

StringBuilder y = new StringBuilder(DecToBin((int)x)); if (y.Length < 8)

{

(26)

xxxiii

sb.Append(y); }

return sb.ToString(); }

private static String Decompress(String stb, String c, String[] s) {

StringBuilder st = new StringBuilder(); StringBuilder bit = new StringBuilder(); StringBuilder stb2;

int t = stb.Length;

int pad = BinToDec(stb.Substring(t - 8, 8));

stb2 = new StringBuilder(stb.Substring(0, t - pad - 8)); for (int i = 0; i < stb2.Length; i++)

{

bit.Append(stb2[i]);

List<string> list = new List<string>(s); if (list.Contains(bit.ToString()))

{

int x = list.IndexOf(bit.ToString()); st.Append(c[x]);

bit = new StringBuilder(); }

}

return st.ToString(); }

private static StringBuilder Pad(String bin, int bit) {

StringBuilder sb = new StringBuilder(); for (int i = 0; i < bit - bin.Length; i++) sb.Append("0");

(27)

xxxiv

return sb; }

private static void Capocelli(String st, int r) {

int MAX = 20;

String charset = GetCharSet(st); int t = charset.Length;

StringBuilder suffix = new StringBuilder(); suffix.Append("0");

for (int i = 0; i < r; i++) suffix.Append("1");

String[] cc = new String[(int)Math.Pow(2, MAX) + 1]; cc[0] = suffix.ToString();

int prefix_length = 1; int count = 1;

while (true) {

for (int i = 0; i < (int)Math.Pow(2, prefix_length); i++) {

StringBuilder prefix = Pad(DecToBin(i), prefix_length); if ((prefix.ToString()).Contains(suffix.ToString()) == false) cc[count++] = (prefix.Append(suffix)).ToString(); }

prefix_length += 1; if (count > t) break; }

vc = new String[t]; for (int i = 0; i < t; i++) vc[i] = cc[i];

(28)

xxxv

public static void RunDecompressionCpl(String target,string target1, string folder, string nama)

{

string content = Form2.readingfiledoc(target); string content1 = Form2.readingfiledoc(target1); int[] vreq = Countvreq(content);

String charset = GetCharSet(content); InsertionSort(vreq, charset);

int r = 3;

Capocelli(content1, r);

String stb = StringToStb(content, ass, vc); String code = Encode(stb);

String dc = Decode(code);

String ds = Decompress(dc, ass, vc);

kalimat = "Decompressed_String sama dengan String asli? " + (ds == content) + "\n"+"Decompressi Success 100%";

klm = content1;

string path = folder + "/CplDecompressi.doc"; System.IO.File.WriteAllText(path, klm);

}

}

public class IegDecompression {

(29)

xxxvi

private static String[] iegc; public static String klm; public static String kalimat;

private static String GetCharSet(String st) {

}

private static int CountChar(String s, char ch) {

return s.Split(ch).Length - 1; }

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[i]); return freq;

}

private static void InsertionSort(int[] freq, String charset) {

fr = freq; cs = charset;

int n = charset.Length;

StringBuilder sb = new StringBuilder(charset); for (int i = 1; i < n; i++)

(30)

xxxvii

{

int frtemp = fr[i]; fr[i] = fr[j]; fr[j] = frtemp; char sbtemp = sb[i]; sb[i] = sb[j];

sb[j] = sbtemp; }

cs = sb.ToString(); }

public static String Reverse(String sb) {

char[] charArray = sb.ToCharArray(); Array.Reverse(charArray);

return new String(charArray); }

private static String DecToBin(int dec) {

StringBuilder bin = new StringBuilder(); int r = dec % 2;

bin.Insert(0, r); dec = dec / 2; while (dec != 0) {

r = dec % 2; bin.Insert(0, r); dec = dec / 2; }

(31)

xxxviii

private static int BinToDec(String bin) {

StringBuilder sb = new StringBuilder(Reverse(bin)); int n = 1;

int dec = 0;

for (int i = 0; i < sb.Length; i++) {

dec = dec + (int)(Char.GetNumericValue(sb[i])) * n; n = n * 2;

}

return dec; }

// converts strings into stringbits

private static String StringToStb(String st, String c, String[] s) {

StringBuilder stb = new StringBuilder(); for (int i = 0; i < st.Length; i++)

{

String z = Char.ToString(st[i]); int k = c.IndexOf(z);

stb.Append(s[k]); }

int x = stb.Length % 8; int pad = 0;

if (x != 0) {

pad = 8 - x;

for (int i = 0; i < pad; i++) stb.Append("0"); }

(32)

xxxix

for (int i = 0; i < y; i++) stb.Append("0"); stb.Append(d); return stb.ToString(); }

private static String Encode(String stb) {

StringBuilder code = new StringBuilder(); for (int i = 0; i < stb.Length; i += 8) {

String x = stb.Substring(i, 8); char y = (char)(BinToDec(x)); code.Append(y);

}

return code.ToString(); }

private static String Decode(String code) {

StringBuilder sb = new StringBuilder(); int t = code.Length;

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

char x = code[i];

StringBuilder y = new StringBuilder(DecToBin((int)x)); if (y.Length < 8)

{

int z = 8 - y.Length % 8; for (int j = 0; j < z; j++) y.Insert(0, "0"); }

(33)

xl

}

return sb.ToString(); }

private static String Decompress(String stb, String c, String[] s) {

StringBuilder st = new StringBuilder(); StringBuilder bit = new StringBuilder(); StringBuilder stb2;

int t = stb.Length;

int pad = BinToDec(stb.Substring(t - 8, 8));

stb2 = new StringBuilder(stb.Substring(0, t - pad - 8)); for (int i = 0; i < stb2.Length; i++)

{

bit.Append(stb2[i]);

List<string> list = new List<string>(s); if (list.Contains(bit.ToString()))

{

int x = list.IndexOf(bit.ToString()); st.Append(c[x]);

bit = new StringBuilder(); }

}

return st.ToString(); }

private static StringBuilder MultiAppend(StringBuilder sb, String s, int t) {

for (int i = 0; i < t; i++) sb.Append(s); return sb;

(34)

xli

private static void InvertedEliasGamma(String st) {

int[] freq = CountFreq(st); String charset = GetCharSet(st); int t = charset.Length;

InsertionSort(freq, charset); freq = fr;

charset = cs;

egc = new String[t]; iegc = new String[t]; int c = 0;

int ic = 0;

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

String b = DecToBin(n); int M = b.Length;

StringBuilder u = new StringBuilder(); u = MultiAppend(u, "0", M - 1); u.Append("1");

StringBuilder s1 = new StringBuilder(); for (int j = 0; j < M; j++)

{

s1.Append(b[j]); s1.Append(u[j]); }

String s2 = s1.ToString();

String s = s2.Substring(1, s2.Length - 1); egc[c] = s;

c++;

StringBuilder s3 = new StringBuilder(); for (int j = 0; j < s.Length; j++)

{

(35)

xlii

s3.Append("1"); else

s3.Append("0"); }

iegc[ic] = s3.ToString(); ic++;

} }

public static void RunDecompressionIeg(String target, string target1, string folder, string nama)

{

string content = Form2.readingfiledoc(target); string content1 = Form2.readingfiledoc(target1); int[] vreq = CountFreq(content);

String charset = GetCharSet(content); InsertionSort(vreq, charset);

InvertedEliasGamma(content);

String stb = StringToStb(content, cs, iegc); String code = Encode(stb);

String dc = Decode(code);

String ds = Decompress(dc, cs, iegc);

kalimat = "Decompressed_String sama dengan String asli? " + (ds == content) + "\n" + "Decompressi Success 100%";

klm = content1;

string path = folder + "/IegDecompressi.doc"; System.IO.File.WriteAllText(path, klm);

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

bahwa berdasarkan pertimbangan sebagaimana dimaksud dalam huruf a, perlu menetapkan Keputusan Bupati Bantul tentang Perubahan Atas Keputusan Bupati Bantul Nomor

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

Sebelumnya pada pasal 6 ayat 2 dinyatakan bahwa “Guru yang belum memperoleh nilai sebagaimana dimaksud dalam Pasal 5 ayat (4) dapat mengikuti Ujian Ulang PLPG paling banyak 4

Peraturan Daerah Kabupaten Bantul Nomor 16 Tahun 2007 tentang Pembentukan Organisasi Dinas Daerah di Lingkungan Pemerintah Kabupaten Bantul sebagaimana diubah

Penyewa adalah orang yang menyewa tanah kas desa atau. orang yang ditetapkan sebagai pemenang