Perbandingan Algoritma Fibonacci Code dan Algoritma Inverted Elias Gamma Code Dalam Kompresi File Teks

A
A-1

LISTING PROGRAM

1.

Fibonacci Code

//membuat fungsi Fibonacci Code
public static String GetFibonacciCode(int n) {
StringBuilder fib = new StringBuilder("1");
int a, b, c;
List fibs = new List();
if (n >= 1) {
a = 1;
b = 1;
c = a + b;
fibs.Add(b);
while (n >= c) {
fibs.Add(c);

a = b;
b = c;
c = a + b;
}
fibs.Reverse();
for (int i = 0; i < fibs.Count; i++) {
if (n >= fibs[i]) {
n = n - fibs[i];
fib.Insert(0, "1");
}
else
fib.Insert(0, "0");
}
}
return fib.ToString();
}

//memanggil fungsi Fibonacci Code
void Button1Click(object sender, EventArgs e)
{

String kalimat = richTextBox1.Text;
Stopwatch watch = new Stopwatch(); // running time
watch.Start();
ClassFibonacci.Fibonacci(kalimat);
String stb =
ClassFibonacci.StringToStb(kalimat,ClassFibonacci.cs,ClassFibon
acci.fc);
String code = ClassFibonacci.Encode(stb);
watch.Stop();

Universitas Sumatera Utara

B
A-2

SaveFileDialog simpan = new SaveFileDialog();
simpan.Filter = "Compressed Files( *.fib)|*.fib";
simpan.FileName = "*.fib";
if (simpan.ShowDialog() == DialogResult.OK)
{

FileStream
fstream=new FileStream(simpan.FileName,FileMode.OpenOrCreate);
StreamWriter sw = new StreamWriter(fstream);
SeekOrigin seekorigin = new SeekOrigin();
sw.BaseStream.Seek(0, seekorigin);
sw.Write(code);
sw.Flush();
sw.Close();
string filenamee=simpan.FileName.Substring(0,si
mpan.FileName.Length- 4) + "f.dat";
FileStream
fstreamm=new FileStream(filenamee,FileMode.OpenOrCreate);
StreamWriter sww = new StreamWriter(fstreamm);
SeekOrigin seekoriginn = new SeekOrigin();
sww.BaseStream.Seek(0, seekoriginn);
sww.Write(ClassFibonacci.cs+"~");
for (int n
= 0; n < ClassFibonacci.cs.Length; n++)
sww.Write(ClassFibonacci.fc[n]+"~");
sww.Flush();

sww.Close();
MessageBox.Show("file berhasil dikompresi");
}
double RC = (kalimat.Length* 8 * 1.0) / stb.Length;
textBox5.Text = Math.Round(RC,2).ToString();
double CR
= (stb.Length/(kalimat.Length* 8 * 1.0))*100;
textBox4.Text =Math.Round(CR,2).ToString()+"
%";
double redu = 100-CR;
textBox8.Text = Math.Round(redu,2).ToString()+" %";
textBox6.Text =
Math.Round(Convert.ToDecimal(watch.ElapsedMilliseconds)/1000,4)
.ToString()+" ms";
}

Universitas Sumatera Utara

CA-3


2.

Elias Gamma Code

//membuat fungsi Elias Gamma Code
public static void InvertedEliasGammaCodes(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();

for (int k = 0; k < M - 1; k++)
u.Append("0");
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;
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();
}

}
}

//memanggil fungsi Elias Gamma Code
void Btn_dekomClick(object sender, EventArgs e)
{
Stopwatch watch = new Stopwatch();
watch.Start();
String dc = ClassEliasGamma.Decode(code);
String ds =
ClassEliasGamma.Decompress(dc, cs, iegc);
richTextBox1.Text = ds;

Universitas Sumatera Utara

DA-4

watch.Stop();
textBox6.Text =
Math.Round(Convert.ToDecimal(watch.ElapsedMilliseconds)/1000,4)

.ToString()+"ms";
}

Universitas Sumatera Utara

Universitas Sumatera Utara

BB-1

CURRICULUM VITAE

1. Biodata
Nama

: Sari Rahmadani Siregar

Alamat Sekarang

: Jln. Dr. Mansyur Gg. Saudara No. 14 Medan


Alamat Orang Tua

: Jln. Cendana III No. 01 Padang Sidempuan

Telp/ Hp

: 085275451323

Email

: sarirahmadanisiregar@gmail.com

2. Riwayat Pendidikan
2012 – 2016

: S1 Ilmu Komputer Universitas Sumatera Utara, Medan

2009 – 2012

: SMA Negeri 3 Padang Sidempuan


2006 – 2009

: SMP Negeri 5 Padang Sidempuan

2000 – 2006

: SD Negeri 200515 Padang Sidempuan

3. Keahlian
Bahasa

: Indonesia, Inggris

Pemrograman

: C#, MATLAB

Database


: MySql

Design

: Photoshop, Corel Draw

Perkantoran

: Microsoft Office

4. Kursus yang diikuti
2007-2009

: Les Bahasa Inggris di Sentika English Course

5. Pengalaman Organisasi
[2008 – 2009]

: Sekretaris OSIS SMP Negeri 5 Padang Sidempuan

[20010 – 2011]

: Skeretaris OSIS SMA Negerei 3 Padang Sidempuan

[2012 – 2016]

: Anggota IMAKOPASID

Universitas Sumatera Utara

3B-2

6. Seminar
[2013]

: Seminar Internasional Forum Bisnis ( MIBEX 2013)

[2014]

: Seminar Nasional Literasi Informasi “SENARAI”

[2015]

: Seminar Sosialisasi Toward ASEAN Community 2015:
ASEAN Goes to Campus

Universitas Sumatera Utara