BAB IV SIMULASI DAN ANALISIS
4.1. Simulasi Simulasi modifikasi LZW dilakukan dengan menggunakan J2ME WTK versi 2.2. Proses simulasinya melalui beberapa tahap seperti yang disebutkan dibawah ini.
4.1.1. Pembuatan Project SendSMS Simulasi pembuatan project Send SMS dilakukan dengan menggunakan J2ME WTK versi 2.2. Proses simulasinya dapat digambarkan dengan proses sebagai berikut : 1. Membuka KToolbar J2ME WTK versi 2.2
Gambar IV - 1 User Interface J2ME WTK22
2. Membuat proyek baru dengan nama SendSMS
Gambar IV - 2 User Interface Membuat Project Baru
27
3. Mengeset parameter pada SendSMS a. Pemilihan API yang akan digunakan
Gambar IV - 3 User Interface API Selection
28
b. mengeset versi dari SendSMS
Gambar IV - 4 User Interface Setting Versi
c. Bagian optional dikosongkan
Gambar IV - 5 User Interface Optional
d. Mengeset SMS-port
Gambar IV - 6 User Interface Setting SMS Port
29
e. MIDlet yang tersedia dari project ini adalah sebagai berikut :
Gambar IV - 7 User Interface Setting MIDlet
f. Setting push registry
Gambar IV - 8 User Interface Setting Push Registry
g. Setting permission
Gambar IV - 9 User Interface Setting Permission
30
h. Tampilan pada KToolbar setelah semua setting dimasukkan
Gambar IV - 10 Tampilan KToolbar
4. Membuat file source code class Java yang telah didefinisikan sebelumnya dan disimpan di dalam folder : C:\WTK22\apps\SendSMS\src. Pembuatan source code class Java tidak dilakukan secara bersamaan tetapi dilakukan secara bertahap. Tahapan yang dilakukan adalah sebagai berikut : a. Meng-copy file SMSSend.java, dan SMSSender.java
dari
folder H:\data WTK\contoh program\bab 6\SendSMS. File ini merupakan file class Java yang digunakan untuk proses pengiriman pesan SMS.File java ini akan ditampilkan pada bagian lampiran. b. Pembuatan ParsingKata.java, ParsingHuruf.java, dan DictTable.java. File class Java ini dibuat untuk mendukung metode kompresi dari alogoritma modifikasi LZW. File java ini akan ditampilkan pada bagian lampiran. c. Implementasi method yang ada pada ParsingKata.Java ke dalam SMSSender.java untuk melakukan proses kompresi pesan SMS. d. Implementasi
program
DictTable.java
ke
ParsingHuruf.java dalam
mendukung proses kompresi SMS.
31
ParsingKata.java
dan untuk
5. Compiling SendSMS :
Gambar IV - 11 Compiling SendSMS
. Proses
Proses compiling dilakukan dengan menekan tombol
compiling ini dilakukan beberapa kali sampai proses tersebut berhasil tanpa terjadi kesalahan/error pada class Java yang dibuat tersebut. 6. Running SendSMS Proses ini dilakukan dengan menggunakan tombol
. Proses running
juga dilakukan beberapa kali. Hal ini dilakukan untuk mengetes seluruh layanan yang ada pada SendSMS. Setelah tombol muncul :
32
di tekan akan
Gambar IV - 12 Tampilan Awal Emulator
Gambar di atas menunjukkan emulator yang digunakan untuk melakukan proses simulasi SendSMS. 7. Proses-proses yang terjadi pada waktu pengiriman
1.
2.
33
3.
4.
5.
6. Gambar IV - 13 Proses Simulasi
Keterangan : 1. Memilih pilihan SendSMS yang ada pada layar emulator 2. Menuliskan pesan yang ingin kita kirimkan. 3. Menuliskan nomor tujuan 4. Emulator akan menanyakan pesan yang kita tulis ingin kita kirim 5.Emulator merespon dengan menuliskan kembali nomor yang akan kita kirimkan pesan tersebur serta berapa banyak halaman pesan yang dibutuhkan
34
6. pesan terkirim
4.1.2. Pembuatan Project TerimaSMS Simulasi pembuatan project TerimaSMS dilakukan dengan menggunakan J2ME WTK versi 2.2. Proses simulasinya dapat digambarkan dengan proses sebagai berikut : 1. Membuka KToolbar J2ME WTK versi 2.2
Gambar IV - 104 User Interface J2ME WTK22
2. Membuat proyek baru dengan nama TerimaSMS
Gambar IV - 15 User Interface Membuat Project Baru
35
3. Mengeset parameter pada TerimaSMS a. pemilihan API yang akan digunakan
Gambar IV - 16 User Interface API Selection
36
b. mengeset versi dari TerimaSMS
Gambar IV - 17 User Interface Setting Versi
c. Bagian optional dikosongkan
Gambar IV - 18 User Interface Optional
d. Mengeset SMS-port
Gambar IV - 19 User Interface Setting SMS Port
37
e. MIDlet yang tersedia dari project ini adalah sebagai berikut :
Gambar IV - 20 User Interface Setting MIDlet
f. Setting push registry
Gambar IV - 21 User Interface Setting Push Registry
g. Setting permission
Gambar IV - 22 User Interface Setting Permission
38
h. Tampilan pada KToolbar setelah semua setting dimasukkan
Gambar IV - 23 Tampilan KToolbar
4. Membuat file source code class Java yang telah didefinisikan sebelumnya dan disimpan di dalam folder : C:\WTK22\apps\TerimaSMS\src. Pembuatan source code class Java tidak dilakukan secara bersamaan tetapi dilakukan secara bertahap. Tahapan yang dilakukan adalah sebagai berikut : a. Meng-copy file TerimaSMS.java dari folder H:\TA Deny\Bab 6\TerimaSMS. File ini merupakan file class Java yang digunakan untuk proses penerimaan pesan SMS.File java ini akan ditampilkan pada bagian lampiran. b. Pembuatan Decompress.java, dan DictTable.java. File class Java ini dibuat untuk mendukung metode dekompresi dari alogoritma modifikasi LZW. File java ini akan ditampilkan pada bagian lampiran. c. Implementasi method yang ada pada Decompress.Java ke dalam SMSSender.java untuk melakukan proses dekompresi pesan SMS. d. Implementasi
program
DictTable.java
ke
dalam
Decompress.java untuk mendukung proses dekompresi SMS.
39
5. Compiling TerimaSMS :
Gambar IV - 24 Compiling TerimaSMS
Proses compiling dilakukan dengan menekan tombol
. Proses
compiling ini dilakukan beberapa kali sampai proses tersebut berhasil tanpa terjadi kesalahan/error pada class Java yang dibuat tersebut. 6. Running TerimaSMS Proses ini dilakukan dengan menggunakan tombol
. Proses running
juga dilakukan beberapa kali. Hal ini dilakukan untuk mengetes seluruh layanan yang ada pada TerimaSMS. Setelah tombol muncul :
Gambar IV - 25 Tampilan Awal Emulator
40
di tekan akan
Gambar di atas menunjukkan emulator yang digunakan untuk melakukan proses simulasi TerimaSMS. 7. Proses-proses yang terjadi pada waktu pengiriman
2.
1.
3. Gambar IV - 26 Proses Simulasi
Keterangan : 1. Memilih pilihan TerimaSMS yang ada pada layar emulator 2. Emulator akan merespon dengan menanyakan apakah kita siap untuk melakukan komunikasi lewat pesan.
41
3.menunggu pesan dari port 5000 (port pada pengirim dan penerima harus sama) Setelah semua langkah tersebut dilaksanakan, maka pada layar emulator akan keluar deretan angka yang harus dimasukkan ke program Decompress.java lewat NetBeans.
4.2. Performansi Algoritma Modifikasi LZW untuk Kompresi SMS Berikut ini akan dibahas mengenai kelebihan dan kekurangan dari dictionary techniques LZW serta hasil modifikasinya yang bertujuan untuk mengatasi kekurangan dari dictionary techniques yang pada dasarnya memang lemah untuk kompresi data sedikit seperti SMS. Pada bagian ini juga akan ditawarkan beberapa ide untuk mengatasi kelemahan-kelemahan yang muncul pada waktu pembuatan simulasi ini. 4.2.1. Informasi Data Pengujian Data-data yang diambil untuk pengujian modifikasi LZW ini mempunyai karakteristik sebagai berikut : 1. Jumlah data sebanyak 205 SMS 2. Data diambil dari inbox 5 orang mahasiswa. 3. Bahasa yang digunakan untuk penulisan SMS tersebut mempunyai karakterisitik banyak singkatan dan banyak menggunakan bahasa yang tidak baku. 4. Dictionary yang digunakan untuk pengujian mempunyai entry sebanyak 1624 buah dari total 65.536 buah. Data-data diatas nantinya akan digunakan untuk perhitungan faktor kompresi. Faktor kompresi adalah perbandingan antara banyaknya hasil kompresi dengan banyaknya karakter awal. Hasil kompresi adalah deretan angka yang dihasilkan setelah karakter awal mengalami proses kompresi. Perhitungannya menggunakan rumus berikut : faktor _ kompresi =
hasil _ kompresi * 8 * 100% karakter _ awal * 7
42
4.2.2. Tabel dan Grafik SMS Total
Tabel IV – 1 Persentase Kompresi Total
No 1 2
Faktor Kompresi (%)
Banyak karakter 80 81
42
122
28
86
98
59
43
111
44
87
129
122
112
44
122
59
88
109
73
111
45
114
49
89
132
77
3
94
112
46
89
32
90
115
214
4
101
123
47
121
45
91
171
16
100
76
92
136
63
5
110
67
48
6
116
51
49
154
20
93
109
52
7
163
23
50
116
51
94
110
91
103
51
109
78
95
94
46
72
157
96
71
16
8
116
9
124
138
52
10
120
154
53
82
160
97
114
26
17
54
109
26
98
156
46
101
46
99
105
53
11
154
12
125
41
55
13
132
25
56
122
74
100
105
53
111
139
101
114
103 130
14
126
102
57
15
104
126
58
118
82
102
116
16
142
12
59
125
42
103
122
44
17
119
153
60
137
63
104
112
104
18
113
97
61
162
52
105
100
40
19
127
61
62
172
49
106
110
33
20
76
314
63
171
18
107
126
36
160
62
108
118
79
21
90
288
64
22
100
41
65
122
28
109
100
16
23
104
46
66
144
106
110
133
60
153
67
158
82
111
95
24
100
40
112
106
56
24
102
25
83
158
68
26
83
158
69
140
116
113
106
56
151
34
114
103
114
27
80
30
70
28
129
53
71
134
46
115
106
31
29
143
160
72
140
70
116
100
34
39
73
124
78
117
121
30
111
143
118
106
103
30
114
31
112
118
74
32
111
99
75
104
73
119
130
50
33
118
79
76
103
266
120
194
10
114
26
121
147
17
34
135
66
77
35
112
84
78
120
59
122
116
46
36
119
22
79
102
38
123
85
100
37
104
24
80
145
22
124
114
25
38
133
71
81
103
112
125
114
80
39
113
121
82
114
32
126
111
74
139
94
127
121
119
40
103
124
83
41
121
110
84
133
18
128
121
119
85
84
27
129
116
90
43
130
123
59
156
142
8
182
115
113
131
145
119
157
114
14
183
125
132
132
137
44
158
159
23
184
105
114
133
100
155
159
101
156
185
102
95
134
119
44
160
157
8
186
139
59
135
119
44
161
136
52
187
112
124
136
136
111
162
95
12
188
129
61
137
138
24
163
94
40
189
107
18
138
141
46
164
137
87
190
75
47
139
155
22
165
81
143
191
75
47
140
120
56
166
119
24
192
98
96
141
124
88
167
82
118
193
81
42
142
121
98
168
100
17
194
109
98
143
123
39
169
81
157
195
97
40
144
124
70
170
85
137
196
110
91
145
152
48
171
125
81
197
117
75
146
120
39
172
125
81
198
93
49
147
93
22
173
119
109
199
114
119
148
93
22
174
145
47
200
122
156
149
114
67
175
114
42
201
123
25
150
107
84
176
93
33
202
91
50
151
108
149
177
112
53
203
104
68
152
59
29
178
135
64
204
114
26
153
152
6
179
106
31
205
99
23
154
91
5
180
118
27
155
84
54
181
101
156
115.9219512
Dari tabel diatas dapat dilihat bahwa jumlah SMS yang dipakai untuk simulasi ini sebanyak 205 buah. Kata-kata yang ada pada SMS tersebut juga dipakai
untuk
mengisi
objek
pembanding
yang
ada
pada
program
DictTable.java. Rata-rata persentase kompresi dari algoritma modifikasi ini adalah 115,92 %. Berikut akan ditunjukkan grafik dari persentase SMS total ini :
44
Grafik kompresi 250
Faktor kompresi
200 150 100 50
5 12 16 18 22 23 25 26 28 31 34 39 40 42 44 46 47 49 52 53 56 59 63 67 73 76 79 82 90 9 106 10 0 11 4 11 1 11 4 12 9 13 2 14 0 15 3 15 4 16 7 0
0
Banyak karakter
Gambar IV - 27 Grafik Kompresi Total
4.2.3. Tabel dan Grafik SMS Terkompresi
Tabel IV – 2 Persentase SMS Terkompresi
No 1 2
Faktor kompresi (%)
Banyak karakter 80 81
86
98
59
169
81
157
95
94
46
170
85
137
112
96
71
16
176
93
33
111
111
95
24
190
75
47
3
94
112
123
85
100
191
75
47
20
76
314
147
93
22
192
98
96
288
148
93
22
193
81
42
59
29
195
97
40
21
90
25
83
158
152
26
83
158
154
91
5
198
93
49
30
155
84
54
202
91
50
95
12
205
99
23
27
80
46
89
32
162
52
72
157
163
94
40
81
143
82
118
53
82
160
165
85
84
27
167
85.86486486
Data diatas adalah data dari 37 buah SMS dari total 205 buah SMS total yang terkompresi. Kolom paling kiri menunjukkan nomor-nomor SMS yang terkompresi dan kolom paling kanan menunjukkan jumlah karakter dalam satu buah SMS. Jumlah karakter ini tidak bisa menjamin suatu pesan akan terkompresi atau tidak. Dalam algoritma modifikasi LZW ini yang akan menentukan suatu pesan akan terkompresi atau tidak adalah jumlah karakter dalam suatu kata.
45
Mengenai hal ini akan dibahas pada bagian yang lain. Rata-rata kompresi untuk SMS yang terkompresi adalah sebesar 85,86 %. Berikut ini adalah grafiknya : Grafik terkompresi 120
Faktor kompresi
100 80 60 40 20
59 96 10 0 11 1 11 2 11 2 11 8 13 7 14 3 15 7 15 7 15 8 15 8 16 0 28 8 31 4
49 50 54
47 47
42 46
40 40
32 33
29 30
23 24 27
22 22
5 12 16
0
Banyak karakter
Gambar IV - 28 Grafik SMS Terkompresi
4.2.4. Tabel dan Grafik SMS Tidak Terkompresi
Tabel IV – 3 Persentase SMS Tidak Terkompresi
No 4 5
Faktor kompresi (%)
Banyak karakter 101 110
28
129
53
51
109
78
29
143
160
54
109
26
123
30
114
39
55
101
46
67
31
112
118
56
122
74
111
99
57
111
139
6
116
51
32
7
163
23
33
118
79
58
118
82
103
34
135
66
59
125
42
112
84
60
137
63
8
116
9
124
138
35
10
120
154
36
119
22
61
162
52
17
37
104
24
62
172
49
41
38
133
71
63
171
18 62
11
154
12
125
13
132
25
39
113
121
64
160
14
126
102
40
103
124
65
122
28
121
110
66
144
106 82
15
104
126
41
16
142
12
42
122
28
67
158
17
119
153
43
111
44
68
100
40
122
59
69
140
116
18
113
97
44
19
127
61
45
114
49
70
151
34
22
100
41
47
121
45
71
134
46
46
48
100
76
72
140
70
153
49
154
20
73
124
78
50
116
51
74
111
143
23 24
104 102
46
75
104
73
129
116
90
189
107
18
76
103
266
130
123
59
194
109
98
77
114
26
131
145
119
196
110
91
78
120
59
132
137
44
197
117
75
79
102
38
133
100
155
199
114
119
80
145
22
134
119
44
200
122
156
81
103
112
135
119
44
201
123
25
82
114
32
136
136
111
203
104
68
83
139
94
137
138
24
204
114
26
84
133
18
138
141
46
87
129
122
139
155
22
88
109
73
140
120
56
89
132
77
141
124
88
90
115
214
142
121
98
91
171
16
143
123
39
92
136
63
144
124
70
93
109
52
145
152
48
94
110
91
146
120
39
97
114
26
149
114
67
98
156
46
150
107
84
99
105
53
151
108
149
100
105
53
153
152
6
101
114
103
156
142
8
102
116
130
157
114
14
103
122
44
158
159
23
104
112
104
159
101
156
105
100
40
160
157
8
106
110
33
161
136
52
107
126
36
164
137
87
108
118
79
166
119
24
109
100
16
168
100
17
110
133
60
171
125
81
112
106
56
172
125
81
113
106
56
173
119
109
114
103
114
174
145
47
115
106
31
175
114
42
116
100
34
177
112
53
117
121
30
178
135
64
118
106
103
179
106
31
119
130
50
180
118
27
120
194
10
181
101
156
121
147
17
182
115
113
122
116
46
183
125
132
124
114
25
184
105
114
125
114
80
185
102
95
126
111
74
186
139
59
127
121
119
187
112
124
128
121
119
188
129
61
47
122.5416667
Jumlah SMS yang tidak terkompresi adalah sebesar 168 SMS dari total 205 buah SMS. Rata-rata persentase yang tidak terkompresi adalah sebesar 122,54%. Berikut adalah grafik dari SMS yang tidak terkompresi. Grafik tidak terkompresi 00250
Faktor kompresi
00200 00150 00100 00050 00000 6 14 17 22 24 25 27 31 36 40 42 44 46 49 52 53 59 61 64 70 74 78 81 84 91 98 103 111 116 119 124 139 154 160
Banyak karakter
Gambar IV - 29 Grafik SMS Tidak Terkompresi
4.3. Kelebihan dan Kekurangan Modifikasi LZW serta Ide Mengatasinya Sebelum kita membahas tentang kekuranagn dan kelebihan dari algoritma ini, ada baiknya jika kita mengetahui bagaimana perhitungan dan cara kerja dari proses kompresi ini. Bagian ini hanya membahas tentang bagaimana cara kerja dari algoritma modifikasi dictionary techniques LZW. Tentang bagaimana cara kerja dari dictionary techniques LZW yang asli dapat dilihat pada bab Dasar Teori. Pada algoritma ini, dictionary dibuat berdasarkan objek dan bukan berdasarkan huruf atau kombinasi huruf saja. Objek tersebut bisa saja adalah sebuah kata, sebuah kalimat, sebuah tanda baca, sebuah ekspresi, atau hanya sebuah huruf. Penentuan objek itu sendiri adalah segala sesuatu yang dipisahkan oleh dua buah spasi untuk pesan yang ada di tengah, dan dipisahkan oleh satu buah spasi untuk permulaan dan akhir dari suatu pesan. Untuk lebih mempermudah pemahaman, penulis akan menampilkan beberapa pesan yang persentase kompresinya 100 %, artinya pesan tersebut tidak mengalami kompresi ataupun tidak melebihi standar SMS yang telah ada. Standar yang
dipakai
sebagai
perbandingan
48
adalah
pengkodean
SMS
dengan
menggunakan kode ASCII dimana satu buah karakter dalam kode ASCII direpresentasikan dengan 7 buah
bit. Pada algoritma modifikasi ini, satu buah
angka akan direpresentasikan dengan 8 bit, untuk proses detail dari algoritma kompresinya dapat dilihat pada activity diagram pada bab Perancangan Simulasi. SMS yang persentase kompresinya 100% adalah sebagai berikut : SMS nomor 22, yang berisi pesan “Ah... kurang ngerti... Ngecek di mana ya?” Dari SMS diatas akan kita pilah-pilah menurut objeknya : Objek 1 : Ah... kurang , jumlah karakternya = 11 karakter Objek 2 : ngerti... , jumlah karakternya = 9 karakter Objek 3 : Ngecek , jumlah karakternya = 6 karakter Objek 4 : di , jumlah karakternya = 2 karakter Objek 5 : mana , jumlah karakternya = 4 karakter Objek 6 : ya? , jumlah karakternya = 3 karakter Jumlah karakter per objek =
karakter _ total 35 = = 5.83 objek _ total 6
Sekarang kita akan lihat SMS lain yang mempunyai persentase kompresi 100%. SMS nomor 48 yang berisi pesan : “Di sabuga,.Gw gk bs,gw k jkt jg ntr,mungkn yg ikt pawai edo,fery,kosim n yudis.” Dari SMS diatas akan kita pilah-pilah menurut objeknya : Objek 1 : Di , jumlah karakternya = 2 karakter Objek 2 : sabuga,.Gw , jumlah karakternya = 10 karakter Objek 3 : gk , jumlah karakternya = 2 karakter Objek 4 : bs,gw , jumlah karakternya = 5 karakter Objek 5 : k , jumlah karakternya = 1 karakter Objek 6 : jkt , jumlah karakternya = 3 karakter Objek 7 : jg , jumlah karakternya = 2 karakter Objek 8 : ntr,mungkn , jumlah karakternya = 10 karakter Objek 9 : yg , jumlah karakternya = 2 karakter Objek 10 : ikt , jumlah karakternya = 3 karakter Objek 11 : pawai , jumlah karakternya = 5 karakter Objek 12 : edo,fery,kosim , jumlah karakternya = 13 karakter
49
Objek 13 : n , jumlah karakter = 1 karakter Objek 14 : yudis. , jumlah karakter = 6 karakter Jumlah karakter per objek =
karakter _ total 65 = = 4.64 objek _ total 14
SMS berikutnya yang mempunyai persentase kompresi 100 % adalah SMS nomor 68, 105, 109, 116, 133 dan 168. Dengan cara yang sama dengan perhitungan diatas maka jumlah karakter per objek dari masing-masing SMS diatas adalah sebagai berikut : Untuk SMS nomor 68 : Jumlah karakter per objek =
karakter _ total 35 = = 5.83 objek _ total 6
Untuk SMS nomor 105 : Jumlah karakter per objek =
karakter _ total 35 = = 5.83 objek _ total 6
Untuk SMS nomor 109 : Jumlah karakter per objek =
karakter _ total 14 = = 4.67 objek _ total 3
Untuk SMS nomor 116 : Jumlah karakter per objek =
karakter _ total 29 = = 4.83 objek _ total 6
Untuk SMS nomor 133 : Jumlah karakter per objek =
karakter _ total 133 = = 5.78 objek _ total 23
Untuk SMS nomor 168 : Jumlah karakter per objek =
karakter _ total 15 = =5 objek _ total 3
Jika hasil perhitungan diatas dirata-rata maka akan didapat hasil sebagai berikut :
rata − rata =
5.83 + 5.83 + 4.67 + 4.83 + 5.78 + 5 = 5.32 6
Jadi untuk SMS dengan persentase kompresi 100%, jumlah karakter yang dibutuhkan per objek minimal sebanyak 5 buah karakter.
50
Untuk membuktikan hal ini, maka kita akan mengambil masing-masing satu buah SMS tabel SMS yang terkompresi dan SMS yang tidak terkompresi. Untuk tabel SMS yang terkompresi, maka SMS yang kita ambil adalah nomor 96 dan untuk tabel yang tidak terkompresi akan diwakili oleh SMS nomor 63. SMS nomor 96 berisi : “Jalan trunojoyo.” objek 1 : Jalan , jumlah karakternya = 5 karakter objek 2 : trunojoyo. , jumlah karakternya = 10 karakter Jumlah karakter per objek =
karakter _ total 15 = = 7.5 objek _ total 2
Terbukti bahwa SMS yang terkompresi jika dirata-rata jumlah karakter per objeknya minimal berjumlah 5 karakter. SMS nomor 63 berisi : “Fer loe lg dimana?” objek 1 : Fer , jumlah karakternya = 3 karakter objek 2 : loe , jumlah karakternya = 3 karakter objek 3 : lg , jumlah karakternya = 2 karakter objek 4 : dimana? , jumlah karakternya = 7 karakter Jumlah karakter per objek =
karakter _ total 15 = = 3.75 objek _ total 4
Terbukti bahwa SMS yang tidak terkompresi jika dirata-rata karakter per objeknya berjumlah lebih sedikit dari 5 karakter.
4.3.1. Kekurangan Algoritma Modifikasi LZW dan Ide Memperbaikinya
Beberapa
kelemahan
dari
algoritma
modifikasi
LZW
dan
ide
memperbaikinya adalah sebagai berikut : 1. Terbatas untuk komunikasi dua arah saja, karena jika proses pengiriman melibatkan lebih dari dua orang pengguna maka proses update dari table dictionary akan mengalami kerancuan sehingga akan menimbulkan kesalahan pengkodean kembali deretan angka menjadi kalimat semula. Pada algoritma ini jumlah objek total yang bisa ditampung dalam program DictTable.java adalah sebanyak 65.536 buah. Jumlah sebanyak itu
akan dibagi menjadi dictionary yang tetap dan dictionary yang berubah.
51
Maksudnya, dictionary tetap adalah dictionary dimana objeknya dibuat berdasarkan statistik yaitu jumlah objek yang sering muncul dalam penulisan pesan. Otomatis jumlah tersebut tidak dibuat sebanyak 65.536, mungkin hanya dibuat setengah jumlah tersebut. Jika pada saat proses komunikasi antara dua orang pengguna terdapat kata baru, otomatis dictionary akan melakukan proses update dengan mengirimkan kata tersebut bersama dengan indeks dari kata tersebut di dictionary table pengirim. Penerima yang menerima kata dan indeksnya akan mengupdate dictionary tablenya dengan menambahkan kata tersebut di bawah kata yang sudah ada. Dapat dibayangkan bagaimana jadinya jika yang melakukan proses pengiriman dan penerimaan pesan lebih dari dua orang. Contoh : si A mengirimkan pesan kepada si B dan terdapat kata baru “aku” pada nomor 97. Sedangkan si C berkomunikasi dengan si D dan mengirim kata baru “aku” pada nomor 100. Ketika si A berkomunikasi dengan si C dan mengirimkan kata baru “aku” maka si C akan mengartikan nomor 97 yang dikirimkan si A dengan dengan kata yang lain dan bukan dengan kata ”aku”. Hal ini otomatis akan menimbulkan kesalahan pada pengkodean ulang kata tersebut. Ide untuk mengatasi hal ini adalah dengan dibuat suatu server yang mengatur proses update dari dictionary dinamis ini sehingga proses penambahan dictionary untuk kata yang sama tidak terjadi berkali-kali. Proses pengiriman semua akan dilewatkan server, sehingga proses update dictionary tidak hanya terjadi pada pengirim dan penerima, juga terjadi pada server. Dictionary dinamis ini juga dibuat supaya memiliki batas waktu tertentu, sehingga memori server tidak habis dan proses pengiriman dan penerimaan pesan tidak menjadi lambat karena proses yang terlalu lama di server. 2. Kata-kata yang digunakan untuk penulisan pesan menjadi terbatas, karena kata-kata yang digunakan harus ada dalam dictionary supaya bisa dikodekan dalam suatu deretan angka. Jika kata-kata tersebut tidak
52
terdapat dalam dictionary, maka dictionary akan mengeluarkan huruf 0 dan oleh penerima akan dibaca sebagai kata “not available”. Ide untuk mengatasinya adalah dengan menggunakan server seperti yang disebutkan diatas. Hanya saja cara seperti ini akan menimbulkan beberapa masalah lain, diantaranya adalah sebagai berikut : •
Pola update seperti yang ditunjukkan diatas membawa dampak pada sisi kepraktisan. Semakin sering server mengupdate dan membroadcast hasil update-nya kepada user maka akan semakin tidak praktis. Update disini maksudnya adalah menghapus dictionary dinamis yang lama dan menggantinya dengan yang baru.
•
Server akan menjadi lambat jika waktu pengiriman dan penerimaan pesan lebih cepat daripada waktu update server. Jika hal itu terjadi maka server akan semakin cepat penuh sehingga mempengaruhi kecepatan server sebagai fasilitator dalam proses penerimaan dan pengiriman pesan.
•
Dibutuhkan juga telepon genggam yang mempunyai memori yang besar juga supaya proses update dapat berjalan dengan lancar.
3. Adanya kebiasaan penulisan pesan yang disingkat-singkat sehingga persentase kompresi menggunakan algoritma ini menjadi buruk. 4. Adanya penulisan yang berbeda-beda oleh pengirim untuk suatu kata tertentu yang mempunyai arti yang sama. Contohnya adalah kata “lagi” yang biasanya ditulis “lg”, “lgi”, ataupun ditulis secara lengkap “lagi”. Ide untuk mengatasinya adalah dibuat suatu program yang dapat mengenali kata yang ditulis secara berbeda-beda tersebut kemudian menggantinya menjadi kata yang baku digunakan.
53
4.3.2. Kelebihan Algoritma Modifikasi LZW
Kelebihan dari algoritma ini adalah sebagai berikut : 1. Mengurangi kelemahan dictionary techniques LZW untuk kompresi data yang sedikit dengan cara : •
membuat dictionary-nya menjadi statis
•
isi dari dictionary adalah objek, bukan hanya huruf dan kata
2. Bagus digunakan untuk pemberitahuan lewat SMS seperti yang sering dilakukan oleh banyak operator selular di Indonesia. Alasannya dalah karena format kata-kata dari pemberitahuan tersebut hampir selalu sama sehingga isi dictionary-nya tidak berubah-ubah lagi. 3. Kata-kata yang digunakan untuk penulisan pesan tidak perlu disingkatsingkat lagi sehingga tidak menimbulkan kebingungan pada saat penerima menerima kembali pesan tersebut. Hal ini disebabkan karena semakin banyak jumlah karakter dalam satu objek maka persentase kompresinya akan semakin baik.
54