BAB III PERANCANGAN SIMULASI

dokumen-dokumen yang mirip
LAMPIRAN A Project SendSMS /////////////////////////////////////////////////////// ParsingKata.java

BAB IV SIMULASI DAN ANALISIS

PERFORMANSI MODIFIKASI LZW UNTUK KOMPRESI SMS LAPORAN TUGAS AKHIR. Deny Aprianto /Teknik Telekomunikasi

BAB III ANALISA DAN DESAIN SISTEM. Analisa masalah yang didapat dari penelitian ini adalah membuat data

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISIS DAN PERANCANGAN SISTEM. Analisis sistem bertujuan untuk mengidentifikasi permasalahan

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. sebelumnya oleh Anjar Setyo Nugroho (2010) telah dibuat PENERAPAN KRIPTOGRAFI PADA SMS MOBILE DENGAN

DAN ENKRIPSI BERBASIS AES PADA PENGIRIMAN SMS


BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. Dalam pembahasan tentang chatting menggunakan J2ME ini

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM

TAKARIR. : diagram aktifitas yang memodelkan alur kerja. suatu proses. dipakai. berurutan. : perangkat untuk simulasi hasil aplikasi pada IDE

BAB 1 PENDAHULUAN Latar Belakang

BAB IV HASIL DAN UJI COBA

APLIKASI MOBILE UNTUK KOMPRESI SEND MESSAGE SERVICE (SMS) BERBASIS JAVA MIDLET

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM. Analisa yang dilakukan bertujuan untuk menentukan solusi dari

BAB II DASAR TEORI. 2.1 Pendahuluan

BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS

Penggunaan Netbeans IDE, Hello World, variable dan Operator aritmetika.

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM. telah dijelaskan pada bab sebelumnya. Analisis yang dilakukan bertujuan untuk

BAB I PENDAHULUAN. halaman khusus untuk pengaksesan dari handphone. Semakin baik informasi akan

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

BAB III ANALISA DAN DESAIN SISTEM

Mobile Computing. Ramos Somya

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

BAB IV HASIL DAN UJI COBA

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISA DAN DESAIN SISTEM

Pada Bab IV ini akan dijelaskan perancangan aplikasi pengiriman pesan teks ber-markup via Short Message Service (SMS).

BAB IV PERANCANGAN. SMSSender. - inter : Interface + run () : void. inbox inboxdate outbox outboxdate sender receiver

BAB IV PERANCANGAN SISTEM

BONUS. Dasar Java Mobile. Mengenal Java Mobile Mengenal MIDlet Mobile Grafis Mobile Animasi Latihan Soal

STMIK GI MDP. Program Studi Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil Tahun 2010/2011

IV. HASIL DAN PEMBAHASAN. Rancung bangun sistem permainan game puzzle pada handphone berbasis java

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISIS DAN PERANCANGAN APLIKASI. Aplikasi chatting mobile phone yang menggunakan NetBeans IDE 6.0 yang di

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISA DAN PERANCANGAN. 3.1 Analisa Berikut tahap-tahap awal dalam pembuatan:

APLIKASI KOMPRESI SMS BERDASARKAN SINGKATAN KATA YANG SERING DIPAKAI BERBASIS JAVA MIDLET SKRIPSI. Disusun oleh :

BAB III METODOLOGI PENELITIAN

Kode tereksekusi dengan baik sehingga mendapatkan output "JENI Java Education Network Indonesia" yang diikuti oleh "Hello Jeni"

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

PRAKTEK 1 CLASS, ATTRIBUTE, METHOD, DAN OBJEK

Pengenalan Visual Basic

BAB II TINJAUAN PUSTAKA

Gambar 4.1 Flowchart

BAB III ANALISIS DAN PERANCANGAN. permasalahan secara umum dan analisis perancangan sistem dari aplikasi Iqra ini.

DAFTAR ISI... Halaman ABSTRAKSI... KATA PENGANTAR... DAFTAR TABEL... DAFTAR GAMBAR... DAFTAR LAMPIRAN... BAB I PENDAHULUAN... 1

BAB I PERSYARATAN PRODUK

UKDW BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB III ANALISIS DAN PERANCANGAN

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

BAB III ANALISA DAN PERANCANGAN

BAB III ANALISA DAN DESAIN SISTEM

PEMROGRAMAN JAVA. Yoannita, S.Kom. Input Kondisi (IF-ELSE, SWITCH)

Larik/ Array int a1, a2, a3, a4, a5;

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

BAB 1 PENDAHULUAN Latar Belakang

BAB 8 Argumen dari Command-line

BAB 5 Mendapatkan Input dari Keyboard

Java Application. Menampilkan Tulisan

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN SISTEM. permasalahan-permasalahan dan kebutuhan-kebutuhan yang diharapkan sehingga dapat

Dasar Pemrograman Java

Bab 3 Metode dan Perancangan Sistem

BAB IV HASIL DAN PEMBAHASAN

APLIKASI MOBILE-CHATTING MENGGUNAKAN FASILITAS BLUETOOTH DENGAN J2ME

BAB 2 TINJAUAN PUSTAKA

BAB IV ANALISA DAN PERANCANGAN SISTEM Analisis Sistem yang Sedang Berjalan. Untuk merancang sebuah aplikasi mobile pelajaran Kimia dasar untuk

APLIKASI KAMUS MATEMATIKA UNTUK HANDPHONE

APLIKASI PENGAMAN ISI LAYANAN PESAN SINGKAT PADA TELEPON SELULER BERBASIS J2ME MENGGUNAKAN ALGORITHMA SIMETRI SKRIPSI. Oleh : MIFTAHUL.

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

Achmad Solichin.

BAB III ANALISA DAN PERANCANGAN

Java Application. Aplikasi: Menampilkan Tulisan

BAB III ANALISIS DAN PERANCANGAN

2. Pilih instruksi yang dapat digunakan dalam method actionperformed untuk membedakan antara tombol buttonone dan buttontwo.

BAB V IMPLEMENTASI DAN PENGUJIAN

DAFTAR ISI. ABSTRAK... i KATA PENGANTAR... ii DAFTAR ISI... iii DAFTAR TABEL... xi DAFTAR GAMBAR... xiv

BAB III ANALISIS DAN DESAIN SISTEM

DateField adalah objek yang dapat digunakan untuk menampilkan atau mengedit objek yang bertipe Date.

BAB IV ANALISIS DAN PERANCANGAN SISTEM. Kegiatan analisis sistem yang berjalan dilakukan dengan analisis yang

IMPLEMENTASI KOMPRESI DATA TEXT MENGGUNAKAN HUFFMAN CODING

BAB III ANALISIS DAN PERANCANGAN

BAB I PENDAHULUAN , 1.1. Latar Belakang

APLIKASI PEMBELAJARAN JAVA FUNDAMENTAL BERBASIS MOBILE MENGGUNAKAN JAVA 2 MICRO EDITION (J2ME) Naskah Publikasi

int i = 0; while (i < 10) { System.out.println( Informatika Unpas ); i++; }

BAB 5 Mendapatkan Input dari Keyboard

datanya. Hasil User dapat melanjutkan aktivitas selanjutnya setelah memilih File yang diinginkan. 2. Use Case Menyisipkan Teks Table 4-2 Deskripsi Use

BAB IV ANALISIS DAN PERANCANGAN SISTEM. hasil analisis ini digambarkan dan didokumentasiakan dengan metodologi

Bab 3 Perancangan Sistem

BAB IV IMPLEMENTASI DAN PENGUJIAN PONSEL SEBAGAI MOBILE PRESENTATION BERBASIS BLUETOOH

BAHASA PEMROGRAMAN JAVA

BAB 1 PENDAHULUAN. pro. Saat ini, jumlah pelanggan yang dimilik PT. Astro Komputindo sudah

ANALISA DAN PERBANDINGAN ALGORITMA RUN LENGTH ENCODING DAN ALGORITMA LZW ( LEMPEL ZIV WECH ) DALAM PEMAMPATAN TEKS

BAB III ANALISIS DAN PERANCANGAN

Bab 3. Metode dan Perancangan Sistem

Transkripsi:

BAB III PERANCANGAN SIMULASI 3.1. Batasan dan Karakteristik Modifikasi LZW Dalam pembuatan simulasi dengan menggunakan tehnik modifikasi LZW (Lempel, Ziv, and Welch) ini, penulis menggunakan beberapa class java yang nantinya akan diaplikasikan pada simulator J2ME (Java 2 Micro Edition). Simulasi yang digunakan pada tugas akhir ini mempunyai beberapa kriteria di bawah ini : 1. Simulasi ini dibuat dengan menggunakan J2ME WTK (Wireless Tool Kit) versi 2.2 2. Simulasi ini hanya dapat berjalan jika emulator mempunyai konfigurasi minimal CLDC versi 1.0 dan MIDP 2.0 yang keduanya didefinisikan oleh SunMicrosystem 3. Simulasi ini hanya akan berjalan apabila pada emulator sudah terdapat program penerimaan dan pengiriman SMS serta beberapa class java yang diperlukan. 4. Besarnya kompresi dari tehnik ini tidak selalu tetap tergantung pada banyaknya huruf pada suatu kata yang akan dikirimkan. 5. Simulasi ini menggunakan dictionary static, maka dari itu dictionary harus selalu diperbaharui supaya perbendaharaan objek yang dapat dipakai pada tehnik ini juga semakin banyak. 6. Kapasitas dari dictionary static tersebut sebanyak 65.536, maka dari itu pengguna tidak perlu merasa khawatir akan kehabisan memori untuk menyimpan objek yang baru. Dengan kriteria diatas maka proses perancangan simulasi modifikasi LZW dapat dilakukan. Pembahasan mengenai definisi objek pada dictionary akan dilakukan pada bab selanjutnya. 10

3.1.1. Pemilihan Dictionary Technique LZW LZW sebenarnya bukan merupakan merupakan satu-satunya algoritma dalam dictionary techniques yang dapat digunakan untuk kompresi data. Tetapi setelah melalui beberapa pertimbangan maka diputuskan untuk mencoba performansi dari Dictionary Techniques LZW untuk kompresi SMS (Short Message Services). Pertimbangan-pertimbangan itu adalah sebagai berikut : 1. LZW merupakan tehnik dictionary yang terbaru, dan merupakan pengembangan dari tehnik-tehnik sebelumnya sehingga lebih mudah untuk diaplikasikan dalam bahasa pemrograman khususnya Java. 2. Dictionary Techniques LZW merupakan tehnik dictionary yang sangat bagus digunakan untuk kompresi terutama untuk kompresi data yang sangat besar, maka dari itu penulis ingin menguji performansinya jika digunakan untuk mengompresi data yang kecil seperti SMS. 3.1.2. Pemilihan J2ME J2ME dipilih sebagai platform untuk mengimplementasikan tehnik ini dengan beberapa pertimbangan sebagai berikut : 1. J2ME adalah sebuah teknologi yang telah banyak digunakan dalam pengembangan aplikasi pada ponsel dewasa ini, mulai dari aplikasi permainan sampai pada aplikasi pendukung yang lebih besar. 2. Tool yang digunakan untuk mengembangkan aplikasi yang berbasis pada J2ME bersifat gratis dan mudah didapatkan, yaitu J2ME WTK versi 2.2 3. Adanya dukungan komunitas J2ME yang cukup besar dan adanya dokumentasi J2ME yang cukup lengkap sehingga memudahkan pembangunan aplikasi yang berbasis pada J2ME. 3.2. Sistem Modifikasi LZW Simulasi LZW ini dibangun secara langsung dengan menggunakan J2ME WTK versi 2.2. Toolkit ini digunakan oleh penulis sebagai platform Java 2 Micro Edition untuk proses pengembangan simulasi dari awal sampai akhir.. 11

Sistem modifikasi dictionary techniques LZW akan digambarkan secara menyeluruh dengan menggunakan UML (Unified Modelling Language) yang akan dibagi menjadi dua bagian yaitu UML untuk SendSMS dan UML untuk TerimaSMS. 3.2.1 UML untuk SendSMS Sistem secara keseluruhan dari SendSMS secara sederhana akan digambarkan dalam suatu use case diagram dimana bagian detail dari proses dapat dilihat dalam sequence diagram dan dalam activity diagram. Untuk class java, method, serta atribut yang akan dipakai dapat dilihat dari class diagram dalam UML ini. 3.2.1.1. Use Case Diagram SendSMS SendSMS User PhoneInput KirimSMS ParsingKata DictTable ParsingHuruf Gambar III - 1 Use Case SendSMS Dari use case diagram diatas terlihat bahwa terdapat beberapa class yang diperlukan sebelum SMS dikirim ke penerima. Class-class tersebut antara lain : 1. SendSMS, digunakan untuk mengirim pesan ke suatu nomor tujuan dengan menggunakan port yang telah ditentukan sebelumnya. 12

2. PhoneInput, adalah suatu class yang berfungsi untuk menyediakan method TextField yang dapat kita gunakan untuk menuliskan pesan dalam simulator yang nantinya akan dipakai sebagai masukan untuk program ParsingKata. 3. ParsingKata, merupakan class utama dalam program kompresi. Class ini mengambil input dari kalimat yang kita ketikkan pada TextField di program PhoneInput kemudian mengubahnya menjadi kata-kata dimana setiap kata tersebut disimpan dalam suatu array sebagai masukan untuk program ParsingHuruf. 4. ParsingHuruf, adalah suatu class dimana kalimat yang telah diparsing menjadi kata akan diparsing lagi menjadi huruf. Pada class ini juga terdapat method untuk membandingkan setiap huruf yang didapat dengan kombinasi huruf yang terdapat pada class DictTable. Jika kombinasi huruf yang dibandingkan ada pada class DictTable, maka method huruf yang terdapat dalam class ini akan mengembalikan nilai berupa indeks dari kata tersebut. Jika kombinasi huruf yang dibandingkan tidak ada, maka indeks yang dikembalikan akan bernilai 0. 5. DictTable, adalah suatu class yang menyimpan objek yang telah disimpan sebelumnya dan digunakan sebagai pembandingkan dalam class ParsingHuruf. Keterangan bagaimana proses yang terjadi pada class-class diatas dapat dilihat dalam diagram-diagram UML selanjutnya. 13

3.2.1.2. Sequence Diagram SendSMS : ParsingHuruf : Dict Table : ParsingKata : PhoneInput : SendSMS input dari emulator kata yang telah diparsing huruf yang telah diparsing bandingkan dengan dict hasil pembandingan dengan dict return 0 jika kata tidak ada angka hasil perbandingan deretan angka String dari deretan angka tersebut Gambar III - 2 Sequence Diagram SendSMS Pada diagram ini dijelaskan tentang perpindahan data, serta input dan output dari masing-masing class dalam SendSMS. 14

3.2.1.3. Collaboration Diagram SendSMS : Dict Table 5: hasil pembandingan dengan dict 6: return 0 jika kata tidak ada 7: angka hasil perbandingan : ParsingKata 3: huruf yang telah diparsing 4: bandingkan dengan dict 2: kata yang telah diparsing 1: input dari emulator 8: deretan angka : ParsingHuruf 9: String dari deretan angka tersebut : PhoneInput : SendSMS Gambar III - 3 Collaboration Diagram SendSMS Collaboration diagram merupakan pengembangan dari sequence diagram. Pada diagram ini, selain diperlihatkan input dan output dari class-class pada SendSMS, juga diperlihatkan bagaimana urutan pengerjaan dari mulai input awal yang kita masukkan lewat simulator sampai output akhir yang nantinya akan dikirimkan melalui class SendSMS ke penerima. 3.2.1.4. Activity Diagram SendSMS Activity diagram adalah suatu diagram yang menjelaskan tentang proses dari suatu bagian dari awal sampai akhir. Pada diagram ini akan dibahas secara detail tentang bagaimana program tersebut dapat berjalan. Activity diagram untuk SendSMS akan dibagi menjadi dua yaitu Compressi dan SendSMS. Dibawah ini activity diagram untuk SendSMS. 15

Start Input dari emulator compressi output compressi simpan dalam short Ubah ke string kirim End Gambar III - 4 Activity Diagram SendSMS Diagram ini menjelaskan langkah-langkah yang terjadi dalam proses SendSMS. Penjelasannya sebagai berikut : 1. Menjalankan emulator (diwakilkan dengan tombol start) 2. Memasukkan input text yang kita inginkan lewat simulator tersebut 3. Input yang telah kita masukkan tadi akan mengalami proses kompresi yang proses detailnya akan dijelaskan dalam activity diagram Compess 4. Hasil dari proses kompresi, yaitu deretan angka, disimpan dalam suatu variabel short. Hal ini karena variabel keluaran dari program ParsingKata adalah short, sehingga variabel penampung dalam program PhoneInput juga harus short. 5. Variabel short tadi harus diubah kedalam bentuk string. Alasannya karena metode value of yang digunakan untuk mengambil nilai dari variabel penampung tersebut hanya bisa menerima atribut string. Jika yang 16

dikirimkan bukan string, maka penerima akan menerima hash code dan bukan input yang kita inginkan. 6. Mengirimkan deretan angka yang sudah diubah bentuknya ke dalam string. 7. Aktifitas dalam blok SendSMS telah selesai (diwakilkan dengan tanda End) Sekarang kita akan bahas aktifitas apa saja yang terjadi di dalam blok Compressi. Start input kalimat dari TextBox Lakukan Parsing kata Lakukan parsing huruf Cocokkan tiap huruf yang didapat dengan dictionary Return 0 Keluarkan angka hasil perbandingan dengan dictionary dalam file penampung short Ubah angka tersebut kedalam bentuk bit Untuk bit yang genap : geser byte ke kanan sebanyak 8 Untuk bit yang ganjil : kurangi byte dengan byte pertama yang digeser ke kiri sebanyak 8 Mas ukan ke SendSMS Gambar III - 5 Activity Diagram Compressi 17

Aktifitas yang terjadi di dalam blok Compressi adalah sebagai berikut : 1. Menjalankan emulator (diwakilkan dengan tombol Start) 2. Mengambil input kalimat dari TextField 3. Kalimat tadi kemudian mengalami proses parsing kata ketika dimasukkan ke program ParsingKata kemudian disimpan dalam suatu array. 4. Program Parsinghuruf yang dipanggil dalam program ParsingKata bertugas untuk memarsing kata yang ada dalam array menjadi huruf. 5. Kemudian kombinasi huruf tersebut dibandingkan dengan dictionary yang ada dalam program DictTable yang dipanggil dalam program ParsingHuruf. 6. Setelah itu terdapat dua buah kemungkinan. Yang pertama adalah kata tersebut tidak ada dalam dictionary sehingga program akan mengeluarkan nilai 0. 7. Kemungkinan kedua adalah kata tersebut ada dalam dictionary, maka program akan mengeluarkan indeks nilai sesuai dengan nilai yang ada dalam dictionary. 8. Karena nilai tersebut masih dalam bentuk integer, maka kita harus mengubahnya dalam bentuk bit sehingga kita bisa melakukan operator right-shift (>>>) dan left-shift (<<). 9. Kemudian dibuat sebuah bit yang disebut bit kedua (metode ini juga dipakai pada bit-bit genap) yang nilainya didapat dari nilai bit asli yang mengalami pergeseran ke kanan sebanyak 8 bit. 10. Untuk nilai bit yang pertama (metode ini juga dipakai pada bit-bit ganjil) didapat dari nilai bit asli yang dikurangi dengan nilai bit pertama yang digeser ke kanan sebanyak 8 bit. 11. Kemudian nilai tersebut akan menjadi input untuk program PhoneInput yang aktifitasnya telah dijelaskan pada activity diagram diatas. 18

3.2.1.5. Class Diagram SendSMS SendSMS display : Display cmexit, cmok : Command form : PhoneInput tbclip : TextBox public SendSMS() public void startapp() public void pauseapp() public void destroyapp() public void commandaction() public void exitmidlet() PhoneInput display : Display cmsend, cmcancel, cmexit : Command tfphone : TextField midlet : SendSMS msg : String itemcancel, itemsend, itemexit : StringItem al : Alert adr : String smsport : String m : short[ ] s : String public PhoneInput() public void itemstatechange() public void commandaction() public void run() ParsingKata kata : String[ ] katabaru : String[ ] j, l, i, m : int kalimat : String b : short [ ] temp : String z : byte [ ] baru : short [ ] public static short [ ] parser() Dict Table dict : Vector ParsingHuruf sisa : StringBuffer ketemu : boolean i, j : int dict : Vector temp, temp2 : String hasil : String public static int huruf() exception e MIDlet public static Vector getdict() Gambar III - 6 Diagram Class SendSMS Diagram class diatas menunjukkan class-class yang digunakan dalam SendSMS beserta dengan class-class, method, serta atribut-atribut dalam Java. : menunjukkan class Java, attribut dan operation yang dimiliki oleh class Java. Kolom pertama menunjukkan nama class Java, kolom kedua menunjukkan attribut, dan kolom ketiga menunjukkan method dari class Java. Kolom attribut dan method dari class Java yang dikosongkan tidak menunjukkan tidak adanya attribut dan operation dari class Java. 19

Penjelasan dari attribut dan operation dari class Java tersebut di atas dapat dilihat dibagian lampiran. Class Java yang disebutkan di atas juga menggunakan beberapa package dan mewariskan beberapa class yang sudah didefinisikan di dalam J2ME. 3.2.2. UML untuk TerimaSMS Seperti UML untuk SendSMS, UML untuk TerimaSMS juga mempunyai beberapa diagram seperti diagram pada SendSMS. Diagram-diagram itu adalah sebagai dijelaskan di bawah ini. 3.2.2.1. Use Case Diagram TerimaSMS Output Compressi (from Use Cases) Decompress (from Use Cases) TerimaSMS (from Use Cases) user DictTable (from Use Cases) Gambar III - 7 Use Case TerimaSMS Dari use case diagram diatas terlihat bahwa terdapat beberapa class yang diperlukan pada saat penerima menerima SMS. Class-class tersebut antara lain : 1. Decompress, merupakan class yang mengubah deretan huruf yang diterima pada class TerimaSMS menjadi kalimat asal. Pada class ini pula dipanggil class DictTable yang menyimpan objek yang akan digunakan sebagai pembanding. Untuk proses detail yang terjadi pada class ini akan ditunjukkan pada activity diagram. 20

2. TerimaSMS, merupakan class utama pada penerimaan SMS. Pada class ini output dari SendSMS akan diterima dan output dari program dekompresi akan ditampilkan kepada penerima. 3. DictTable, adalah suatu class yang menyimpan objek yang telah disimpan sebelumnya dan digunakan sebagai pembanding. Keterangan bagaimana proses yang terjadi pada class-class diatas dapat dilihat dalam diagram-diagram UML selanjutnya. 3.2.2.2. Sequence Diagram TerimaSMS : Decompress : DictTable : TerimaSMS input dari TerimaSMS bandingkan dengan dict kata hasil perbandingan kalimat asli Gambar III - 8 Sequence Diagram TerimaSMS Pada diagram ini dijelaskan tentang perpindahan data, serta input dan output dari masing-masing class dalam TerimaSMS. 21

3.2.2.3. Collaboration Diagram TerimaSMS 2: bandingkan dengan dict : Decompress : DictTable 3: kata hasil perbandingan 1: input dari TerimaSMS 4: kalimat asli : TerimaSMS Gambar III - 9 Collaboration Diagram TerimaSMS Collaboration diagram merupakan pengembangan dari sequence diagram. Pada diagram ini, selain diperlihatkan input dan output dari class-class pada TerimaSMS, juga diperlihatkan bagaimana urutan pengerjaan dari mulai input dari pengirim sampai dengan pengembalian pesan ke bentuk aslinya. 3.2.2.4. Activity Diagram TerimaSMS Activity diagram untuk TerimaSMS dibagi menjadi blok Decompress dan TerimaSMS. Berikut ini akan dibahas terlebih dahulu aktifitas yang terdapat pada TerimaSMS. 22

Start input dari emulator decompress output dari program decompress menampilkan kalimat hasil penggabungan kata dari program decompress End Gambar III - 10 Activity Diagram TerimaSMS Langkah-langkah yang terjadi pada TerimaSMS adalah sebagai berikut : 1. Menjalankan program (diwakilkan dengan tanda Start). 2. Mengambil input dari emulator yang merupakan output dari SendSMS. 3. Input tadi dimasukkan dalam program decompress untuk diproses sehingga didapat kalimat yang sama dengan kalimat asalnya. 4. Pada tugas akhir ini, kalimat aslinya tidak dapat langsung ditampilkan dalam emulator, sehingga output yang didapat (output ini yang tampil pada layar simulator) akan dimasukkan ke dalam salah satu JAVA Builder yaitu NetBeans untuk menampilkan kalimat aslinya. 5. Deretan angka tadi dimasukkan ke dalam NetBeans untuk mendapat kalimat yang tadi kita masukkan melalui simulator J2ME WTK 2.2 6. Mengakhiri simulasi (diwakilkan dengan tanda End). Sekarang kita akan bahas aktifitas apa saja yang terdaji pada blok Decompressi. 23

Start input dari TerimaSMS ubah input dari string ke byte Byte genap digeser ke kiri sebanyak 8 Byte ganjil dibiarkan saja gabungkan kedua byte dengan operasi logical OR Simpan hasil penggabungan dalam bentuk short Bandingkan hasil penggabungan dengan dictionary input untuk TerimaSMS Gambar III - 21 Activity Diagram Decompress Langkah-langkah yang terjadi pada blok Decompressi sebagai berikut : 1. Menjalankan simulasi (diwakilkan dengan tanda Start) 2. Mengambil input dari SendSMS. 3. Input yang diambil tadi masih dalam bentuk string karena pada waktu mengirim, SendSMS mengirim outputnya dalam bentuk string, maka dari itu harus diubah terlebih dahulu menjadi bit. 4. Bit kelipatan genap yang didapat digeser ke kiri sebanyak 8 bit. 5. Bit kelipatan ganjil diambil begitu saja nilainya tanpa harus diubah-ubah terlebih dahulu. 6. Kemudian masing-masing pasangan bit (satu bit ganjil dan satu bit genap) digabungkan dengan menggunakan operasi logika OR ( ). 7. Nilai yang didapat disimpan dalam suatu variabel short sehingga semua deretan angka 0 dan 1 pada bilangan bit tersebut dapat terakomodasi. 24

Misal : bit pertama : 11111111 dan bit kedua 00000000. Maka setelah kedua bit mengalami langkah 6, maka hasil yang didapat dalm bentuk short adalah 1111111100000000. 8. Kemudian hasil yang didapat dalam bentuk short tadi oleh program dengan sendirinya akan diubah menjadi nilai integer dan dalam program Decompress akan dibandingkan dengan dictionary dan ditampilkan hasilnya. Untuk hal ini, proses pemasukan input harus dilakukan secara manual ke dalam JAVA Builder NetBeans jika ingin mengetahui kalimat yang didapat cocok atau tidak dengan kalimat aslinya. 9. Output keluaran dari blok ini merupan input dari blok TerimaSMS yang langkah-langkahnya telah dijelaskan diatas. 3.2.2.5. Class Diagram TerimaSMS TerimaSMS display : Display alert : Alert tfpesan : TextBox thread : Thread conn : MessageConnection pesan : Message daftarkoneksi : String[ ] port : String karakter : String[ ] hilangkoma : String[ ] jumlahdata : int temp : int cmdkeluar : Command public TerimaSMS() public void startapp() public void pauseapp() public void destroyapp() public void commandaction() public void run() public void notifyincomingmessage() public void startnewthread() dict : Vector DictTable public static vector getdict() Decompress dict : Vector str : String ketemu : boolean temp : int hasil_decode : short[ ] data : byte [ ] public static String decompress() MIDLET Exception e Gambar III - 32 Diagram class TerimaSMS Diagram class diatas menunjukkan class-class yang digunakan dalam TerimaSMS beserta dengan class-class, method, serta atribut-atribut dalam Java. 25

Penjelasan dari attribut dan operation dari class Java tersebut di atas dapat dilihat dibagian lampiran. Class Java yang disebutkan di atas juga menggunakan beberapa package dan mewariskan beberapa class yang sudah didefinisikan di dalam J2ME. 26