LAMPIFUN
Lampiran 1. Keterangan mengenai berkas teks yang digunakan Berkas Teks IndoUlangl:7: I, IndoUlangl: l:7, IndoUlang7:l:l, lndoUlang3:3:3, InggUlangl:7:l, InggUlangl:l:7, InggUlang7: I:I,InggUlang3:3:3, IndoAcakl:7: I, IndoAcakl: l:7, IndoAcak7: I:1, IndoAcak3:3:3,
Keterangan Berkas teks lndonesia yang berisi pengulangan yang diberikan perlakuan dengan perbandingan 1:7:1, 1:1:7,7:1:1,3:3:3 Berkas teks lnggris yang berisi pengulangan yang diberikan dengan perlakuan 1:7:1, 1:1:7, 7:1:1,3:3:3 Berkas teks Indonesia yang berisi kata-kata acak yang diberikan perlakuan dengan perbandingan 1:7:1, 1:1:7,7:1:1,3:3:3
lnggAcak1:7: 1, InggAcakl:l:7, InggAcak7:l: I,InggAcak3:3:3,
Berkas teks lnggris yang berisi kata-kata acak yang diberikan perlakuan dengan perbandingan 1:7:1, 1:1:7, 7:1:1, 3:3:3
1ndoMurni.txt
Berkas teks Indonesia yang berisi kata-kata acak tanpa perlakuan yang digunakan sebagai pembanding dari berkas perlakuan Berkas teks lnggris yang berisi kata-kata acak tanpa perlakuan yang digunakan sebagai pembanding dari berkas perlakuan
UlangIndo.txt
Berkas teks Indonesia yang berisi pengulangan tanpa perlakuan yang digunakan sebagai pembanding dari berkas perlakuan
Repeatlngg.txt
Berkas teks lnggris yang berisi pengulangan tanpa perlakuan yang digunakan sebagai pembanding dari berkas perlakuan Berkas teks Indonesia acak tanpa perlakuan yang digunakan pada strategi kedua
Indo-l.txt, Indo-2.txt, Indo-3.txt
Ingg-l.txt, Ingg-Z.txt, Ingg-3.txt, IndoUlang-l.txt, IndoUlang3.txt
IndoUlang-2,txt,
InggUlang-l.tst, InggUlang-3.txt
InggUlang-2.txt.
Berkas teks lnggris acak tanpa perlakuan yang digunakan pada strategi kedua Berkas teks lndonesia yang berisi pengulangan tanpa perlakuan yang digunakan pada strategi kedua Berkas teks Indonesia yang berisi pengulangan tanpa perlakuan yang digunakan pada strategi kedua
The-l.txt, the-2.txt, the-3.txt, becosI.txt, becos-2.txt, becos3.txt
Berkas leks Inggris yang mengandung perulangan kata 'the' dan 'because' dengan rasio berturut-turut 17.01%. 28.66% dan 40.10%.
Dari-l.txt, dari-2.txt, dari3.txt, meskiI.txt, meski-2.txt. meski-33x1
Berkas teks Indonesia yang mengandung perulangan kata 'dari' dan 'meski' dengan rasio berturut-turut 14.61%. 25.80% dan 36.61%.
I
14
Lampiran 2. Tabel kebutuhan ruang penyimpanan hasil pemampatan berkas perlakuan dan tanpa perlakuan.
Lampiran 3. Rasio hasil dekompresi berkas tennampatkan.
Berkas Teks
Ukuran bcrkas tcrkornprcs (bytes)
Ukuran hasil pendekodcan (bytes) dan wakfu pcndckodcan (dctik)
Rasio
Lanipiran 4. Tahap pembuatan tree pada algoritma kompresi Huffman, short create-tree() I
double maxfreq = 0 ; struct chardata *new-node = NULL; while (maxfreq < 0.99999 ) { find-lowest-freqs(); if ((new-node = (struct chardata *)malloc(sizeof (struct chardata)) )== NULL) 1
puts("1nsufficient memory, malloc() failed in create-tree()."); reiurn FALSE;
1 new-node->up = NULL; new-node->left = ptr2; new-node->right = ptrl; new-node->charnum = -1; ptrl->up = new-node; ptr2->up = new-node;
maxfreq = new-node->frequency;
1
root = new-node;
Lampiran 5. Tahap pengkodean dengan algoritma Huffman. short compress(void) { if ((infile=fopen(infile-name, "rb")) ==NULL) { printf("Unable to open %s\nV,infile-name); return I ;
outfile=fopen("hasil.huf',"wb"); if(outfile=NULL) { printf("Unable to open hasil.huf'); return 1;
1 for (i=O; i 4 3 ; i++) fputc(origname[i], outfile); if (fwrite((void*)&array-rnax-index,
sizeof(short), I, outfile < l )
I
p r i n t r u n a b l e to write to %s -- out of disk space?", outtile-name); fclose(outfile); return 1; )
if ( fivrite((void*)&total, sizeof(unsigned long), 1, outfile)< I) ( printf("Unable to write to %s -- out of disk space?", outfile-name); fclose(outfile); return 1; ) if (fivrite((void*)decode-table, sizeof(struct decode-table-element), array-max-index array-max-index) (
printf("Unab1e to write to %s fclose(outfile); return 1:
+ 1, outfile
<
-- out of disk space?", outfile-name);
1
for (i=O; i< total; i++) I
I
c = fgetc(infi1e); if (c = EOF) { printKM\nReachedunexpected end of input file at position %Id.\nU,i); return I; I
array-index = find-match(c); if (outpqt-bits(huflable[array_index]->bitsequence (short)huflable[array-index]->seq_length)! { ~rintf("Unableto write to %s -- out of disk space?", outfile-name); return 1; }
1
output-bits(255.7); printf("%ld bytes encoded.\nU,i); fclose(outtile); return 0; )
0)