Implementasi Proses Latar IMPLEMENTASI SISTEM

4.3. Implementasi Proses Latar

Dari perancangan proses latar yang telah dibuat terdapat 6 proses latar yang dikerjakan pada thread-thread yang berbeda, karena java mendukung konsep pemrograman multithreading, berikut adalah pseudoceode dari proses background: Pseudocode kompres sms: 1. new thread 2. String isi - getPesanTextbox text 3. String biner - kompresisi 4. biner - addVersionbiner 5. byte[] hasil - StringToBytebiner 6. return hasil Gambar 4.7. Pseudocode Implementasi Proses Latar Algoritma Kompres Proses kompresi dimulai dengan menciptakan thread baru kemudian mengambil pesan yang diketikkan pengguna dari Textbox dengan perintah getPesanTextbox text dan disimpan dalam variabel isi, variabel ini dijadikan sebuah parameter yang dilewatkan melalui method kompresisi yang proses di dalamnya yaitu mencari setiap karakter spasi dan membandingkan kata di sebelah kirinya dengan tabel konversi kata dan merubahnya ke biner, jika tidak ditemukan kata yang cocok, tiap-tiap karakter pembentuk kata tersebut akan diubah ke biner berdasarkan tabel Konversi huruf, hasil dari method ini berupa string biner. Sebelum string biner dikirimkan, akan ditambahkan 4 bit pada deretan awal string biner untuk menandakan versi dari aplikasi pengirim dengan perintah addVersionbiner . Agar pesan dapat dikirimkan melalui method BinaryMessage , string biner harus diubah dulu ke bentuk byte dengan perintah StringToBytebiner dan hasilnya berupa byte akan dikembalikan kepada thread yang memanggil thread ini. Pseudocode dekompres sms: 1. new thread 2. byte[] byte - getPesanbyte[] text 3. String biner - ByteToStringbyte 4. int version - getVersionbiner 5. String hasil - dekompresbiner, version 6. return hasil Gambar 4.8. Pseudocode Implementasi Proses Latar Algoritma Dekompres Proses dekompres dimulai dengan menciptakan thread baru kemudian mengambil pesan dengan perintah getPesanbyte[] text dan disimpan dalam variabel byte, karena isi dari variabel berupa byte, sebelum didekompres akan diubah dulu ke bentuk string biner dengan perintah ByteToStringbyte dan diambil versi pesan dengan perintah getVersionbiner . Setelah mendapatkan pesan biner dan versinya, variabel-variabel tersebut akan dijadikan sebuah parameter yang dilewatkan melalui method dekompresbiner, version yang proses di dalamnya yaitu mencari setiap deret biner yang merepresentasikan karakter spasi dan membandingkan string biner di sebelah kirinya dengan tabel konversi kata dan merubahnya ke kata, jika tidak ditemukan string biner yang cocok, deretan string biner tersebut akan diubah ke huruf per huruf berdasarkan tabel Konversi huruf, dan hasilnya berupa string akan dikembalikan kepada thread yang memanggil thread ini. Pseudocode menerima sms: 1. new thread 2. MessageConnection con - Connector.open“sms::2007” 3. Message mg - con.receive 4. ifmg=null BinaryMessage bm - mg Date tgl - bm.getTimeStamp String hasil - goDekompres String no - mg.getAddress Inbox.tambahRecordno, hasil, tgl, belum Gambar 4.9. Pseudocode Implementasi Proses Latar Algoritma Terima SMS Proses menerima sms dimulai dengan menciptakan thread baru kemudian mendeklarasikan nomor port SMS yang akan di-listen aplikasi dengan perintah MessageConnection con - Connector.open“sms::2007”. Setelah port 2007 terbuka, perintah Message mg - con.receive dipanggil jika isi dari variabel mg ada berarti ada pesan masuk. Ketika terdapat pesan masuk, untuk memastikan pesan tersebut bertipe biner akan diubah ke bentuk biner dengan perintah BinaryMessage bm - mg dan diambil tanggal pengiriman pesan dengan perintah Date tgl - bm.getTimeStamp kemudian aplikasi akan memanggil thread dekompres SMS yang prosesnya seperti dijelaskan pada gambar 4.8. hasil dari pemanggilan method tersebut berupa string, dan sebelum pesan masuk ini disimpan, diambil dulu alamat pengirim dengan perintah no - mg.getAddress. Untuk menyimpan pesan, digunkan perintah Inbox.tambahRecordno, hasil, tgl, belum. Parameter belum digunakan untuk mendeklarasikan bahwa pesan belum terbaca, hal ini berhubungan dengan icon pesan yang akan ditampilkan. Pseudocode mengirim sms: 1. new thread 2. String alamat - isValidgetAlamat 3. MessageConnection con - Connector.openalamat 4. BinaryMessage bm - con.newMessageMessageConnection.BM 5. bm.setAddressalamat 6. byte[] hasil - goKompres 7. bm.setPayLoadDatahasil 8. con.sendbm 9. Outbox.tambahRecordgetNO, getPesan, getTgl, belum Gambar 4.10. Pseudocode Implementasi Proses Latar Algoritma Kirim SMS Proses menerima sms dimulai dengan menciptakan thread baru kemudian mengambil no tujuan dan validasi dengan perintah isValidgetAlamat. Sebelum pesan dikirimkan melalui nomor port yang telah ditentukan, dideklarasikan dengan perintah Connector.openalamat. Pesan dikompres dengan memanggil thread kompres yang prosesnya seperti pada gambar 4.7. dan hasilnya dikirimkan dengan perintah setPayLoadDatahasil . Pesan terkirim disimpan dengan perintah Outbox.tambahRecordgetNO, getPesan, getTgl, belum. Pseudocode cek jumlah karakter: 1. new thread 2. String alamat - getAlamat 3. MessageConnection con - Connector.openalamat 4. Binary Message bm - con.newMessageMessageConnection.BM 5. bm.setAddressalamat 6. byte[] hasil - goKompres 7. bm.setPayLoadDatahasil 8. int nSMS - con.numberOfSegmentsbm 9. if nSMS 1 showAlert Gambar 4.11. Pseudocode Implementasi Proses Latar Cek Jumlah Karakter Proses ini dijalankan ketika pengguna mengetik pesan, proses ini dimulai dengan menciptakan thread baru yang bekerja di background. Proses-proses di dalam thread sama seperti pada gambar 4.10 namun hasil dari pesan yang telah dikompres tidak dikirim melainkan dihitung banyaknya pesan yang akan dikirim dengan perintah con.numberOfSegmentsbm, hasilnya ditampilkan dengan alert. Pseudocode hitung rasio hasil kompresi: 1. new thread 2. String alamat - getAlamat 3. MessageConnection con - Connector.openalamat 4. Binary Message bm - con.newMessageMessageConnection.BM 5. bm.setAddressalamat 6. byte[] hasilKom = goKompres 7. String hasilTkom = getPesan; 8. int rasio - hasilKom.length hasilTkom.length 100 9. showInfoKompresirasio Gambar 4.12. Pseudocode Implementasi Proses Latar Hitung Rasio Kompresi Proses pada thread ini sama seperti pada gambar 4.11 yang membedakan adalah ditambahkan rumus untuk mengitung rasio kompresi dengan perintah: hasilKom.length hasilTkom.length 100 dan hasilnya ditampilkan dengan perintah showInfoKompresirasio.

4.4. Implementasi Antarmuka