BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Analisis sistem adalah mendefinisikan kebutuhan terkait sistem yang akan dikembangkan dan hasil akhir dari tahap analisis sistem ini adalah sebuah dokumen yang menjelaskan mengenai
spesifikasi kebutuhan sistem informasi atau SRS Software Requirement Spesification. Kegiatan analisis sistem adalah kegiatan untuk melihat sistem yang sudah berjalan, melihat
bagian mana bagus dan tidak bagus dan kemudian mendokumentasikan kebutuhan yang akan dipenuhi dalam sistem yang baru Sukamto Shalahuddin, 2013.
Tujuannya adalah untuk memperbaiki berbagai fungsi didalam sistem yang sedang berjalan agar menjadi lebih efisien, mengubah sasaran sistem yang sedang berjalan,
merancangmengganti output yang sedang digunakan, untuk mencapai tujuan yang sama dengan seperangkat input yang lain bisa jadi lebih sederhana dan interaktif atau untuk
melakukan beberapa perbaikan serupa Ladjamudin, 2005. Tahap analisis sistem dilakukan setelah tahap perencanaan sistem system planning
dan sebelum tahap desain sistem system design. Tahap analisis merupakan tahap yang kritis dan sangat penting, karena kesalahan didalam tahap ini akan menyebabkan juga kesalahan
ditahap selanjutnya Hartono, 2005. Untuk menganalisis suatu sistem terdapat beberapa langkah yang harus dilakukan, yaitu sebagai berikut :
3.1.1 Analisis Masalah
Analisis masalah merupakan proses mengidentifikasi sebab dan akibat dibangunnya sebuah sistem yang akan dibangun tersebut dapat berjalan sebagaimana mestinya sesuai dengan
tujuan dari sistem itu Ladjamudin, 2005. Permasalahan yang akan dibahas dalam penelitian ini adalah bagaimana kinerja dari algoritma kompresi Punctured Elias Codes dan Ternary
Comma Code dalam mengkompresi file .doc.
Universitas Sumatera Utara
Penyebab dan akibat yang akan mempengaruhi aplikasi Punctured Elias Codes dan Ternary Comma Code pada kompresi file .doc dapat dilihat pada Tabel 3.1 berikut.
Tabel 3.1 Sebab dan Akibat Analisis Sebab dan Akibat
Perbaikan Tujuan Sistem Masalah atau
Peluang Masalah Sebab dan Akibat
Tujuan Sistem Kendala Sistem
1. Ukuran dari file
teks .doc yang besar.
2. Terdapat
banyak algoritma yang
bisa diterapkan untuk kompresi
data. 1.
Proses transfer data file teks
.doc yang lambat.
2. Membutuhkan
media penyimpanan
yang besar untuk
menyimpan file teks .doc.
1. Dibutuhkan
aplikasi yang mampu
melakukan proses kompresi
dan dekompresi file teks .doc
dengan menggunakan
algoritma. 1.
Tidak adanya aplikasi kompresi
dan dekompresi yang menerapkan
algoritma Punctured Elias Codes dan
Ternary Comma Code.
Identifikasi masalah dalam penelitian ini menggunakan diagram ishikawa seperti pada Gambar 3.1 berikut :
Gambar 3.1 Diagram Ishikawa
Universitas Sumatera Utara
3.1.2 Analisis Kebutuhan
Analisis kebutuhan sistem dapat dikelompokkan menjadi 2 bagian yaitu kebutuhan fungsional dan kebutuhan non-fungsional. Kebutuhan fungsional dibutuhkan untuk
mengetahui hal-hal yang bisa dikerjakan oleh sistem. Adapun analisis fungsional sistem diharapkan mampu melakukan :
a. Sistem harus mampu membaca string yang berada dalam file teks.
b. Sistem harus mampu memampatkan file .doc.
c. Sistem harus mampu melakukan kompresi data terhadap file teks dengan ekstensi file
.doc dengan metode Punctured Elias Codes dan Ternary Comma Code. d.
Sistem harus mampu melakukan dekompresi file yang telah dimampatkan. e.
Sistem harus mampu menampilkan properties hasil perhitungan parameter kinerja algoritma pada penelitian ini yaitu Ratio of compression R
C
dan C
R
, Space Savings SS, Time Process pada saat kompresi dan dekompresi.
Kebutuhan non-fungsional adalah karakteristik yang menentukan kebutuhan sebuah sistem yakni seperti kinerja, user friendly, anggaran serta tenggang waktu yang mampu
bekerja tanpa menggangu fungsional sistem lainnya. Kebutuhan non-fungsional yang harus dipenuhi aplikasi yang dirancang adalah sebagai berikut :
a. User friendly
Sistem yang buat mudah dipahami dan dimengerti cara penggunaannya oleh user yang mengoperasikan aplikasi tersebut.
b. Pelayanan
Sistem yang telah dirancang bisa dikembangkan ke tingkat yang lebih kompleks lagi bagi pihak-pihak yang ingin mengembangkan sistem tersebut.
c. Efisiensi
Sistem harus dirancang sesederhana mungkin agar memudahkan pengguna dalam menggunakan atau menjalankan aplikasi tersebut.
d. Informasi
Kemampuan sistem dalam menyediakan pesan konfirmasi keberhasilan proses kompresi dan dekompresi file .doc.
e. Kontrol
Sistem yang telah dibangun harus tetap dikontrol setelah selesai dirancang agar fungsi dan kinerja sistem tetap terjaga dan dapat memberikan hasil yang sesuai dengan
keinginan pengguna.
Universitas Sumatera Utara
f. Performa
Sistem harus mampu melakukan kompresi file .doc dengan baik. g.
Ekonomi Kemampuan sistem bekerja dengan baik tanpa biaya cost perangkat lunak dan
perangkat keras, sehingga pengguna tidak harus mengeluarkan biaya ekstra.
3.1.3 Analisis Proses
Analisis proses bertujuan untuk mengetahui tahapan apa saja yang harus dilakukan oleh sistem dan cara kerja sistem secara spesifik sehingga dengan mudah melakukan
pemrograman pada sistem yang akan dibangun. Dalam sistem ini terdapat dua proses utama yaitu proses kompresi dan dekompresi dengan menggunakan metode Punctured Elias Codes
dan Ternary Comma Code.
3.1.3.1 Analisis Proses Kompresi Pada Algoritma Punctured Elias Codes
Pada metode Punctured Elias Codes terdapat dua kode yaitu yang disebut dengan kode P1 dan P2 dan yang akan dibahas dalam penelitian ini hanya kode P1 saja.
Pada proses kompresi, sistem awalnya membaca String yang terdapat pada file teks dan kemudian membuat tabel karakter dan frekuensi kemunculan karakter itu yang telah
diurutkan berdasarkan karakter yang memiliki frekuensi terbesar. Setelah itu sistem membangkitkan kode Punctured P1 berdasarkan banyaknya karakter pada yang telah dibuat.
Kemudian sistem melakukan proses kompresi berdasarkan tabel karakter dan tabel kode yang telah dibangkitkan itu.
Tabel 3.2 Punctured Elias Codes Salomon, 2007 N
Binary of n Reserved
Flag Flag | Reserved
P1 -
- -
1 1
1 10
10 | 1 101
2 10
01 10
10 | 01 1001
3 11
11 110
110 | 11 11011
4 100
001 10
10 | 001 10001
5 101
101 110
110 | 101 110101
6 110
011 110
110 | 011 110011
7 111
111 1110
1110 | 111 1110111
Universitas Sumatera Utara
8 1000
0001 10
10 | 0001 100001
Berikut ini adalah contoh proses kompresi file teks dengan metode Punctured Elias Codes. Misalkan pada sebuah file teks berisi
string “HALLO LALA DAN LILI”. Untuk mengukur ukuran string itu didalam komputer dapat dilihat pada tabel 3.3.
Maka : Bit String
: “HALLO LALA DAN LILI” |String|
: 19
I N
D sp
O L
A H
, ,
, ,
, ,
, :
8 :
| |
Tabel 3.3 String Yang Belum Dikompresi Char
ASCII Code ASCII Binary
Bit Frekuensi
Bit x Frekuensi
H 72
01001000 1
8 8
A 65
01000001 4
8 32
L 76
01001100 6
8 48
O 79
01001111 1
8 8
Sp 32
00100000 3
8 24
D 68
01000100 1
8 8
N 78
01001110 1
8 8
I 73
01001001 2
8 16
Total 152
Proses kompresi untuk Punctured Elias Codes dapat dilihat pada Tabel 3.4 berikut.
Tabel 3.4 String Yang Telah Diurutkan Secara Descending dan Table Sorted Dan Telah Dikompresi Dengan Kode Punctured P1
Char Punctured Elias Codes P1
Bit Frekuensi
Bit x Frekuensi
L 1
6 6
A 101
3 4
12 Sp
1001 4
3 12
I 11011
5 2
10
Universitas Sumatera Utara
H 10001
5 1
5 O
110101 6
1 6
D 110011
6 1
6 N
1110111 7
1 7
Total 64
Dari Tabel 3.4 dapat dibentuk string bit dari string sebelum dikompresi yaitu “HALLO
LALA DAN
LILI” menjadi
string bit
“1000110100110101100101010101100111001110111101111001011011011011”.
Sebelum ditulis ke sebuah file hasil kompresi dilakukan penambahan string bit itu sendiri apakah habis dibagi 8 dan berapa sisanya jika dibagi 8. Jumlah string bit 64 habis
dibagi 8 dan sisanya nol. Karena panjang string bit habis dibagi delapan, maka padding bit tidak diperlukan. Dengan demikian, flag bit yang merupakan panjang dari padding bit yakni
0 d a l a m b i n a r y m e n j a d i “ 0 0 0 0 0 0 0 0 ” . S t r i n g b i t y a n g t e r b e n t u k
adalah
”100011010011010110010101010110011100111011110111100101101101101100000 000
”. Sehingga total panjang string bit seluruhnya setelah penambahan padding bits dan flag bits adalah 64+0+8=72 bit. Dari
Dari hasil kompresi dengan Punctured Elias Code P1 di atas dapat dihitung kinerja kompresinya menurut parameter yang sudah ditentukan yaitu:
a. Ratio of Compression R
C
11 ,
2 72
152
C C
C
R R
Dikompresi Setelah
Data Ukuran
Dikompresi Sebelum
Data Ukuran
R
b. Compression Ratio C
R
36 ,
47 100
152 72
100
R R
R
C C
Dikompresi Sebelum
Data Ukuran
Dikompresi Setelah
Data Ukuran
C
Universitas Sumatera Utara
c. Space Savings SS
3.1.3.2 Analisis Proses Kompresi Pada Algoritma Ternary Comma Code
Tabel karakter dan tabel kode dari algoritma Ternary Comma Code dapat dilihat pada Tabel 3.5 berikut.
Tabel 3.5 Ternary Comma Code Salomon, 2007 Value
Code L
Value Code
L
c 2
11 101c
8 1
0c 4
12 102c
8 2
1c 4
13 110c
8 3
2c 4
14 111c
8 4
10c 6
15 112c
8 5
11c 6
16 120c
8 6
12c 6
17 121c
8 7
20c 6
18 122c
8 8
21c 6
19 200c
8 9
22c 6
20 201c
8 …..
….. 64
2001c 10
1,000 1101000c
16 128
11201c 12
3,000 11010002c
18 256
100110c 14
10,000 111201100c
20 512
200221c 14
65,536 10022220020c 24
Berikut ini adalah contoh proses kompresi file teks dengan metode Ternary Comma Code. Misalkan pada sebuah file teks berisi string
“HAI MAHASISWA TINGKAT AKHIR
”. Untuk mengukur ukuran string itu didalam komputer dapat dilihat pada tabel 3.6. 80
72 152
SS SS
Kompresi Setelah
Data Ukuran
Kompresi Sebelum
Data Ukuran
SS
Universitas Sumatera Utara
Maka : Bit String
: “HAI MAHASISWA TINGKAT AKHIR” |String|
: 27
R K
G N
T W
S M
sp I
A H
, ,
, ,
, ,
, ,
, ,
, :
12 :
| |
Tabel 3.6 String Yang Belum Dikompresi Char
ASCII Code ASCII Binary
Bit Frekuensi
Bit x Frekuensi
H 72
01001000 3
8 24
A 65
01000001 6
8 48
I 73
01001001 4
8 32
Sp 32
00100000 3
8 24
M 77
01001101 1
8 8
S 83
01010011 2
8 16
W 87
01010111 1
8 8
T 84
01010100 2
8 16
N 78
01001110 1
8 8
G 71
01000111 1
8 8
K 75
01001011 2
8 16
R 82
01010010 1
8 8
Total 216
Proses kompresi untuk Ternary Comma Code dapat dilihat pada Tabel 3.7 berikut.
Tabel 3.7 String Yang Telah Diurutkan Secara Descending dan Table Sorted Dan Telah Dikompresi Dengan Kode Ternary Comma Code
Char Ternary Comma Code
Bit Frekuensi
Bit x Frekuensi
A c
1 6
6 I
1c 2
4 8
H 2c
2 3
6 Sp
10c 3
3 9
S 11c
3 2
6
Universitas Sumatera Utara
T 12c
3 2
6 K
20c 3
2 6
M 21c
3 1
3 W
22c 3
1 3
N 100c
4 1
4 G
101c 4
1 4
R 102c
4 1
4
Total 65
Dari Tabel 3.7 dapat dibentuk string bit dari string sebelum dikompresi yaitu “HAI
MAHASISWA TINGKAT
AKHIR” menjadi
string bit
“2cc1c10c21cc2cc11c1c11c22cc10c12c1c100c101c20cc12c10cc20c2c1c102c”.
Sebelum ditulis ke sebuah file hasil kompresi dilakukan penambahan string bit itu sendiri apakah habis dibagi 8 dan berapa sisanya jika dibagi 8. Jumlah string bit adalah 65 dan itu
tidak habis dibagi 8, sisanya adalah 1. Selain itu, pada algoritma Ternary Comma Code tidak ada penambahan padding dan flag. Maka total bit seluruhnya tanpa penambahan padding dan
flag adalah tetap 65 bit. Dari hasil kompresi dengan Ternary Comma Code diatas dapat dihitung kinerja
kompresinya sesuai parameter yang sudah ditentukan yaitu : a.
Ratio of compression R
C
32 ,
3 65
216
C C
C
R R
Dikompresi Setelah
Data Ukuran
Dikompresi Sebelum
Data Ukuran
R
b. Compression ratio C
R
09 ,
30 100
216 65
100
R R
R
C C
Dikompresi Sebelum
Data Ukuran
Dikompresi Setelah
Data Ukuran
C
Universitas Sumatera Utara
c. Space Savings SS
3.1.3.3
Analisis Proses Dekompresi Pada Algoritma Punctured Elias Codes dan Ternary
Comma Code Pada proses dekompresi, langkah awalnya sistem akan membaca string hasil kompresi.
Setelah mendapatkan string bit hasil kompresi, tabel karakter dan kodenya, kemudian sistem melakukan proses dekompresi dengan mengembalikan string bit tersebut ke bentuk semula
berdasarkan tabel karakter dan tabel kode yang telah didapat dari hasil proses kompresi.
Tabel 3.8 Tabel Hasil Bit String Setelah Dikompresi Menggunakan Kode Punctured Elias Codes P1 Budiman, 2015
Char Punctured Elias Codes P1
L A
101 Sp
1001 I
11011 H
10001 O
110101 D
110011 N
1110111
”100011010011010110010101010110011100111011110111100101101101101100000000”
Pseudocode untuk proses dekompresi Budiman, 2015 : 1.
function decompress t, sb { 2.
String = 3.
buff = sb[0] 4.
l = lengthsb 5.
for i=1 to 1 { 6.
if buff in t { 151
65 216
SS SS
Kompresi Setelah
Data Ukuran
Kompresi Sebelum
Data Ukuran
SS
Universitas Sumatera Utara
7. String = String + t[buff]
8. buff =
9. }
10. else {
11. buff = buff + sb[i]
12. }
13. }
14. return sb
15. }
Pseudocode proses dekompresi ini juga berlaku pada analisis proses dekompresi pada algoritma Ternary Comma Code. Hal ini dikarenakan penulis menggunakan proses
dekompresi secara universal sehingga dapat diterapkan pada algoritma lainnya untuk proses dekompresi.
3.2 Pemodelan Sistem