39
3 BAB III ANALISIS DAN PERANCANGAN Pada bab ini akan dijelaskan mengenai analisis dan perancangan library Yahoo! Messenger pada platform Android. Analisis ini meliputi deskripsi umum dari sistem, arsitektur perangkat lunak. 3.1 Arsitektur Perangkat lunak Perangkat lunak yang akan dibangun merupakan suatu library yang berisi berbagai macam fungsi yang diperlukan untuk berkomunikasi dengan server Yahoo! Messenger. Library ini akan diberi nama AYmsg. Library ini akan dikumpulkan dalam bentuk package sehingga programmer dapat dengan mudah memanfaatkan library ini untuk membuat suatu Yahoo! Messenger client pada platform Android. Library ini akan menggunakan protokol TCP/IP untuk mengirimkan paket data ke server Yahoo! dengan alamat scs.msg.yahoo.com port 5050. Perangkat lunak ini terhubung ke internet melalui fasilitas komunikasi data yang telah disediakan oleh perangkat keras. Fasilitas tersebut dapat berupa GPRS, 3G, Ethernet, WiFi dan sebagainya. Perangkat lunak yang akan dibangun akan memanfaatkan library yang 1 Gambar 3.1: Arsitektur perangkat lunak

BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

  • Upload
    dinhnhu

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

3

BAB III ANALISIS DAN PERANCANGAN

Pada bab ini akan dijelaskan mengenai analisis dan perancangan library Yahoo!

Messenger pada platform Android. Analisis ini meliputi deskripsi umum dari sistem,

arsitektur perangkat lunak.

3.1 Arsitektur Perangkat lunak

Perangkat lunak yang akan dibangun merupakan suatu library yang berisi berbagai

macam fungsi yang diperlukan untuk berkomunikasi dengan server Yahoo!

Messenger. Library ini akan diberi nama AYmsg. Library ini akan dikumpulkan

dalam bentuk package sehingga programmer dapat dengan mudah memanfaatkan

library ini untuk membuat suatu Yahoo! Messenger client pada platform Android.

Library ini akan menggunakan protokol TCP/IP untuk mengirimkan paket data ke

server Yahoo! dengan alamat scs.msg.yahoo.com port 5050. Perangkat lunak ini

terhubung ke internet melalui fasilitas komunikasi data yang telah disediakan oleh

perangkat keras. Fasilitas tersebut dapat berupa GPRS, 3G, Ethernet, WiFi dan

sebagainya. Perangkat lunak yang akan dibangun akan memanfaatkan library yang

III-1

Gambar 3.1: Arsitektur perangkat lunak

Page 2: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-2

telah disediakan oleh platform untuk mengirimkan paket-paket TCP/IP. Sehingga

tidak peduli jenis komunikasi yang digunakan, aplikasi ini tetap menggunakan cara

yang sama untuk mengirimkan data ke server. Library tersebut nantinya akan

meminta user untuk memilih jenis koneksi yang ingin digunakan. Secara umum,

arsitektur perangkat lunak yang akan dibangun dapat dilihat pada Gambar 3.1.

Secara lebih mendetail arsitektur library yang akan dibuat dipisahkan menjadi dua

bagian. Seperti yang dapat dilihat pada Gambar 3.2. Bagian tersebut terdiri dari:

� Client Side Library. Merupakan bagian library yang langsung digunakan oleh

pengembang. Bagian library ini berisi fungsi-fungsi untuk berkomunikasi

dengan Service yang merupakan layer di bawahnya.

� Service Side Library. Service side library merupakan bagian background dari

library ini yang bertindak sebagai inti library yang membuka koneksi dan

berkomunikasi dengan server Yahoo! Messenger. Nama service dipilih karena

kelas utama dari library merupakan jenis building-block tipe Service.

Gambar 3.2 Menunjukkan layer dari library yang akan di bangun. Layer paling bawah

adalah service, layer ini berkomunikasi dengan sistem dan paling atas adalah client

library yang secara langsung digunakan oleh user.

Gambar 3.2 : Arsitektur layer library AYMsg

Page 3: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-3

3.2 Analisis Implementasi Library pada AndroidPada bagian ini akan dijelaskan bagaimana implementasi library yang akan dibangun

pada platform Android.

3.2.1 ServicePada sub bab 2.1.2 telah dijelaskan bagaimana Building Block aplikasi terbagi menjadi

4 bagian. Activity, Intent Receiver, Service dan Content Provider. Masing-masing blok

tersebut memiliki karakteristik dan life-cycle yang berbeda-beda. Untuk keperluan

Tugas Akhir ini, library akan memanfaatkan building block Service. Service dipilih

karena memiliki life-span yang paling lama. Proses Service akan berjalan terus pada

background meskipun aplikasi yang menghidupkan atau memanggilnya berada di

background.

Kehidupan service yang terus-menerus diperlukan untuk menjaga koneksi ke server

Yahoo!. Apabila library memanfaatkan Activity sebagai komponen untuk membentuk

koneksi ke server Yahoo!, maka pada saat aplikasi berada di background koneksi akan

terputus. Service pada Android memang dibuat untuk mengakomodasi fungsi-fungsi

yang terus berjalan tetapi wujudnya tidak perlu selalu dilihat oleh user aplikasi.

Komponen Service yang digunakan hanya semata-mata untuk melayani koneksi ke

server saja. Service tidak bisa memiliki tampilan ke user. Untuk membuat tampilan

yang berinteraksi dengan server maka dibutuhkan kelas Activity. Kelas Activity

merupakan interface dimana user dapat berinteraksi dengan sistem. Aplikasi yang

memanfaatkan library ini nantinya akan mengimplementasi Activity sebagai interface

dan library AYmsg yang nantinya akan mengurus komunikasi dengan kelas Service

sebagai penyedia koneksi.

Namun terdapat kekurangan dalam menggunakan kelas Service. Tidak seperti

Page 4: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-4

pemrograman Java pada umumnya, biasanya suatu aplikasi berjalan dalam satu proses

saja kecuali program tersebut memang menciptakan proses baru. Service pada

Android dapat berjalan pada proses yang berbeda sehingga pemanggilan method dari

kelas lain yang biasanya dapat langsung dilakukan, sekarang harus melalui IPC (Inter

Process Communication). Pemrograman IPC memiliki tingkat kesulitan yang lebih

tinggi dibanding dengan pemrograman biasa. Untuk menyederhanakan pemrograman

IPC tersebut, Android memiliki metode yang disebut dengan AIDL (Android

Interface Definition Language). Dengan metode ini kita membuat kelas seperti

layaknya kelas seperti biasa lalu SDK Android akan menerjemahkan kelas tersebut

menjadi kelas yang menggunakan IPC.

Meskipun pemrograman IPC pada Android telah dimudahkan oleh AIDL, tetapi

metode ini masih memiliki beberapa kekurangan. Parameter fungsi yang dibuat dalam

AIDL masih terbatas pada :

� Tipe primitif java seperti int, boolean dll.

� Kelas-kelas berikut:

� String.

� List. Elemen pada list harus berupa tipe dalam daftar ini.

� Map. Saat ini hanya didukung map dengan tipe generik saja.

� CharSequence. Kelas yang digunakan pada TextView di Android.

� Interface AIDL lain yang telah dihasilkan oleh SDK.

� Kelas kostumisasi yang di kembangkan oleh pengembang tetapi harus

melakukan implement Parcelable protocol. Kelas ini nantinya akan di passing

by value bukan by reference.

Page 5: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-5

3.2.2 Penggunaan Callback Dalam pemisahan antara Service dengan Activity, perlu adanya suatu metode untuk

memberitahukan user tentang event yang terjadi. Semua pesan dari server pertama

kali selalu diterima oleh bagian Service. Pesan itu lalu di parsing dan dikirimkan

kembali ke sisi user library melalui fungsi yang telah dibuat menggunakan AIDL.

Pesan yang di parsing akan menghasilkan pasang key dan value. Informasi key dan

value tersebut lalu dikirimkan ke sisi client untuk diolah. Alasan bahwa pasangan key

dan value tersebut tidak diolah di sisi Service adalah keterbatasan parameter yang

dapat dikirimkan melalui AIDL. Oleh karena itu, informasi key dan value tersebut

diolah di sisi library bagian client.

Setelah diolah, library harus memberitahukan user tentang event yang terjadi dan

memanggil fungsi yang sesuai untuk menangani fungsi tersebut. Fungsi-fungsi

tersebut adalah fungsi callback. Fungsi callback ini dapat diimplementasi oleh user

library dan akan dieksekusi oleh library pada event tertentu.

3.2.2.1 Fungsi Synchronous dan Asynchronous.

Semua fungsi yang tidak membutuhkan respon dari server Yahoo! Messenger bersifat

synchronous atau blocking. Contoh fungsi ini antara lain adalah fungsi untuk

mengirimkan pesan dan fungsi untuk mengubah status. Fungsi tersebut akan bersifat

blocking sampai paket berisi pesan tersebut berhasil dikirimkan. Tidak bersifat

blocking sampai pesan tersebut diterima oleh user tujuan. Hal ini karena dalam

protokol Yahoo! Messenger sendiri tidak ada mekanisme paket Acknowledgment

bahwa paket pesan tersebut sudah diterima oleh pengirim.

Fungsi-fungsi lain kebanyakan bersifat Asynchronous atau tidak bersifat blocking.

Salah satu contoh adalah fungsi untuk login. Dari sisi client side library. Fungsi

Page 6: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-6

tersebut akan meminta server untuk melakukan proses otentikasi, tetapi fungsi

tersebut tidak mengembalikan nilai apakah proses otentikasi tersebut telah berhasil

atau tidak. Yang dilakukan oleh sisi service adalah melanjutkan proses otentikasi dan

memanggil fungsi callback secara asynchronous yang bersesuaian dengan hasil proses

otentikasi. Misalkan proses otentikasi berhasil library akan memanggil fungsi

callback onLoginSucceded() dan bila gagal, library akan memanggil fungsi callback

onLoginFailed().

Method Asynchronous dipilih karena beberapa alasan:

� Keterbatasan platform Android. Android diciptakan sebagai platform yang

sangat responsif. Setiap aplikasi dimonitor oleh Activiy Manager dan Window

Manager System Services. Android akan memunculkan pesan ANR

(Application Not Responding) Gambar 3.3, apabila terjadi kondisi sebagai

berikut:

� Aplikasi tidak merespon input selama 5 detik

� IntentReceiver tidak selesai dalam waktu 10 detik

Gambar 3.3: Gambar dialog ANR [DOC08]

Page 7: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-7

� Merupakan rancangan yang cocok untuk pengembangan aplikasi pada

Android. Karena keterbatasan di atas, seringkali programmer harus membuat

suatu method call menjadi asynchronous yaitu dengan cara memasukkan

fungsi tersebut ke dalam thread. Dari sisi pengembangan, library ini lebih

mudah apabila diimplementasi dengan metode asynchronous. Apabila fungsi

tersebut dibuat synchronous maka programmer harus membuatnya menjadi

asynchronous kembali. Oleh karena itu dengan dipilihnya bentuk fungsi

asynchronous maka akan memudahkan user untuk melakukan perancangan

pada aplikasi sehingga menghindari pesan ANR tersebut.

3.3 Analisis Implementasi Protokol Yahoo! MessengerPada bagian ini akan dijelaskan bagaimana sistematika penelitian yang telah

dilakukan dalam mempelajari protokol Yahoo! Messenger. Subab awal akan

menjelaskan struktur umum dari paket Yahoo! Messenger dan memperlihatkan

beberapa perubahan dari protokol sebelumnya (Protokol versi 12) yang telah

dijelaskan pada bagian dasar teori. Proses analisa protokol Yahoo! Messenger didapat

melalui proses pembacaan dokumentasi yang tersedia, packet capturing dan

mempelajari dari source code program yang menggunakan protokol Yahoo!

Messenger.

Proses packet capturing diperlukan dalam pembuatan Tugas Akhir ini adalah karena

dokumentasi lengkap yang tersedia saat ini adalah versi 12 (YMSG12), sedangkan

versi protokol yang digunakan dalam Tugas Akhir ini adalah versi 15 (YMSG15).

Untuk itu, perlu dipelajari perubahan-perubahan yang terdapat dalam protokol ini.

Selain itu, dengan proses packet capturing dapat melengkapi dokumentasi untuk jenis

service yang tidak dituliskan dalam dokumentasi.

Page 8: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-8

3.3.1 Struktur Paket Yahoo! MessengerSeperti yang telah dijelaskan pada dasar teori, Yahoo! Membuat protokol sendiri

untuk layanan messenger miliknya. Protokol tersebut berjalan di atas protokol TCP/IP

yang telah ada. Untuk implementasi protokol tersebut, Yahoo! membuat spesifikasi

struktur paket yang dapat dilihat pada Gambar 2.2. Untuk membuat implementasi

pada Android, maka dibuat suatu socket yang digunakan untuk berkomunikasi dengan

server Yahoo!. Melalui socket ini, library akan mengirimkan dan menerima paket

dengan struktur tersebut.

Sampai saat ini, protokol Yahoo! Messenger sudah mencapai versi 15 (YMSG15).

Secara umum bentuk paket dari versi ini masih sama, hanya nilai versi pada bagian

version diisi oleh nilai 15 (0x000F). Struktur paket ini dapat dilihat pada Gambar 3.4.

Paket Yahoo! Messenger ini berdiri di atas paket-paket TCP/IP. Dalam

implementasinya, struktur paket Yahoo! Messenger ini terletak pada bagian TCP Data.

Dalam penelitian Tugas Akhir ini, beberapa kakas digunakan untuk menganalisa

paket-paket yang dikirim dan diterima melalui jaringan. Salah satu kakas yang

digunakan adalah Wireshark. Wireshark adalah kakas jaringan yang dapat

melakukan perekaman dan penganalisaan trafik data dalam jaringan. Wireshark dalam

sistem operasi windows mirip dengan kakas bernama ethereal.

Struktur paket ini merupakan hasil temuan dalam Tugas Akhir ini. Header tetap

memiliki panjang 20 byte. Perbedaan dari dokumentasi adalah versi protokol kini

menjadi 15 dan terdapat 2 byte berisi 0x0000 setelah field version.

Gambar 3.4: Struktur paket Yahoo! Messenger 15 (YMSG15)

1 2 3 4 5 6 7 8Packet ID YMSG Version 0x0000

Length Service StatusSession ID Data

Page 9: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-9

Kakas ini sangat membantu dalam menganalisis paket-paket TCP yang dikirimkan

atau yang diterima dari jaringan. Dalam kakas ini juga terdapat filter yang dapat

melakukan seleksi terhadap paket-paket Yahoo! Messenger. Contoh paket Yahoo!

Messenger dalam suatu paket TCP dapat dilihat pada Gambar 3.6.

Gambar tersebut menunjukkan paket TCP yang berisikan paket Yahoo! Messenger

yang dikirimkan oleh client ke server. Paket Yahoo! Messenger tersebut merupakan

paket Yahoo_Auth yang digunakan untuk memulai proses otentikasi dengan meminta

challenge string. Keterangan lebih lanjut dapat dilihat pada Lampiran C.

3.3.2 Pemrosesan Paket Yahoo! MessengerBeberapa paket Yahoo! Messenger dapat terletak dalam satu paket TCP atau

sebaliknya, satu paket Yahoo! Messenger dapat terletak dalam beberapa paket TCP.

Gambar 3.5: Wireshark. Kakas analisis paket pa da jaringan

Gambar 3.6: Dum p Paket TCP berisi paket Yahoo! Messenger

Page 10: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-10

Seperti yang telah dijelaskan pada sub bab 2.3 bahwa TCP/IP terbagi menjadi

beberapa layer. Pada layer Application, programmer membaca data dari layer

dibawahnya (Transport layer) seperti membaca pada stream biasa. Layer ini

menyembunyikan kerumitan yang terjadi melalui abstraksi layer tersebut.

Meskipun struktur paket telah tersedia dan telah disedikan metode untuk membaca

data pada TCP, perlu dibuat mekanisme parsing khusus untuk paket-paket Yahoo!

Messenger. Hal ini bertujuan untuk memudahkan pembacaan field pada paket dan

penanganan khusus bila terdapat kesalahan pemrosesn paket. Selain itu, bagian data

pada paket Yahoo! Messenger terdiri dari pasangan key dan value yang dipisahkan

oleh karakter tertentu. Tidak terdapat informasi berapa panjang masing – masing field

key dan value. Oleh karena itu, mekanisme ini juga dapat membantu dalam membuat

algoritma membaca paket Yahoo! Messenger tersebut. Mekanisme tersebut dapat

digambarkan dalam state machine pada Gambar 3.7 yang dibuat menggunakan notasi

Statechart diagram milik Unified Markup Language (UML).

Untuk pemisahan antara bagian key dan value, terdapat karakter pemisah 0xC0 dan

0x80. Maka setiap kali bertemu dengan karakter pemisah tersebut, kita harus

menyimpan informasi data sebelumnya sebagai key atau value. Terdapat beberapa

kemungkinan error seperti kondisi dimana saat akan membaca key, mesin malah

menemukan karakter pemisah lagi, sehingga 2 karakter pemisah ditemukan. Hal ini

menjadi tidak benar karena nilai key untuk data tersebut adalah kosong. Tetapi untuk

kasus serupa bagi value, hal tersebut diperbolehkan. Dalam beberapa kasus ditemukan

bahwa terdapat field yang memiliki key tetapi memiliki value yang kosong.

Page 11: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-11

Gambar 3.7: State Machine u n t uk m e m proses paket Yahoo! Messenger

Page 12: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-12

State awal dalam state machine ini adalah koneksi antara client dengan server Yahoo!

Messenger telah terbentuk dan siap membaca paket yang datang. State dalam mesin

ini dijelaskan sebagai berikut :

1. Reading YMSG. Pada state ini, mesin membaca 4 byte data dan

membandingkan dengan string “YMSG”. Apabila data yang dibaca cocok

dengan string tersebut maka mesin berpindah state menjadi Reading Header.

Apablia string yang dibandingkan tidak cocok, 4 byte berikutnya akan dibaca

untuk dibandingkan kembali. Hal ini berjalan terus selama masih ada data.

2. Reading Header. Pada state ini mesin akan membaca dan menyimpan 2 byte

berisi versi protokol Yahoo! Messenger yang digunakan. Setelah menyimpan

data tersebut, mesin akan men-skip 2 byte berisi informasi tidak penting. Lalu

mesin akan membaca 2 byte berisi panjang data yang dikirimkan dalam paket

Yahoo! Messenger ini. Setelah menyimpan informasi tersebut maka mesin

akan membaca 2 byte dan menyimpan informasi tersebut sebagai Service Id

dan melanjutkan ke state Reading Status. Selanjutnya, pada state ini 2 byte

akan disimpan sebagai nilai Status lalu mesin akan membaca 4 byte berisi

Session Id. Session Id merupakan id unik yang dihasilkan oleh server Yahoo!

Messenger dan nilainya dapat berubah-ubah selama proses komunikasi.

Setelah menyimpan Session Id ini, mesin berpindah ke state berikutnya yaitu

Prepare Reading key.

3. Prepare Reading Key. Pada tahap ini, mesin siap menerima data. Bersiap

terhadap kemungkinan error yaitu menerima karekter 0xc0 lalu 0x80. Hal ini

menimbulkan error karena setelah Session Id seharusnya nilai Key bukan

karakter pemisah. Mesin membaca byte berikutnya lalu apabila data yang

Page 13: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-13

dibaca adalah 0xc0 maka mesin akan berpindah state menjadi Readed 0xc0

err key possible dan apabila menerima karakter lain selain 0xc0 maka mesin

berpindah state menjadi Reading Key.

4. Readed 0xC0 err Key Possible. Adalah state dimana pada tahap sebelumnya

data yang dibaca adalah 0xc0, berpotensi karakter pemisah yang seharusnya

tidak ada setelah informasi Session Id. Mesin membaca byte berikutnya dan

membandingkan apakah karakter berikutnya adalah 0x80 atau bukan. Bila

karakter yang diterima adalah 0x80 maka terjadi error dan mesin berpindah

state menjadi Error. Apabila mesin menerima karakter selain 0x80 maka byte

sekarang dan sebelumnya merupakan bagian dari kunci dan mesin berpindah

state menjadi Reading Key.

5. Reading Key. State ini adalah state dimana mesin membaca kunci yang

diakhiri oleh karakter pemisah 0xc0 dan 0x80. Apabila menemukan karakter

selain 0xc0 maka mesin akan menandai bahwa posisi ini dalam bufer

merupakan posisi mula kunci dan terus membaca karakter berikutnya. Apabila

mesin mendapakan karakter 0xc0 maka mesin berpindah state menjadi

Readed 0xc0 for key.

6. Readed 0xc0 for key. Pada state ini, mesin sebelumnya mendapatkan 0xc0.

Kondisi dimana berpotensi karakter berikutnya adalah karakter 0x80 atau

pemisah antara key dan value. Oleh karena itu, apabila karakter 0x80 maka

mesin berpindah state menjadi Prepare Reading Value. Apabila mesin

menerima karakter selain 0x80 maka byte yang dibaca merupakan bagian dari

informasi key maka state berpindah kembali pada state Reading Key.

7. Prepare Reading Value. Pada state ini, mesin telah berhasil membaca satu

Page 14: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-14

key maka mesin menyimpan data key dari posisi yang ditandai pada state

Reading Key lalu membaca satu byte lagi. Sama seperti state Prepare Reading

Key, pada state ini terjadi kemungkinan error dimana mesin mungkin

menemukan karakter 0xC0 dan 0x80. Apabila mesin menerima karakter 0xC0

maka mesin akan berpindah state menjadi Readed 0xC0 Err Val Possible. Dan

apabila mesin membaca selain karakter 0xC0 maka mesin akan berpindah

state menjadi Reading Value.

8. Readed 0xc0 Err Val Possible. Sama seperti pada state Readed 0xC0 Err Key

Possible, apabila mesin membaca byte berisi 0x80 maka mesin akan berpindah

state menjadi Reading Key dimana ditemukan kembali 0xC0 dan 0x80. Karena

dalam penelitian, nilai value boleh kosong Apabila mesin menemukan data

selain 0x80 maka data tersebut merupakan bagian dari value dan berpindah

state menjadi Reading Value.

9. Reading Value. State ini serupa dengan state Reading Key, apabila mesin

menemukan karakter selain 0xC0 maka data tersebut akan menandai posisi

saat ini sebagai posisi awal Value yang nantinya akan digunakan untuk

menandai posisi awal string Value. Apabila karater yang di baca adalah 0xC0

maka mesin akan berpindah state menjadi Readed 0xC0 for Value.

10. Readed 0xc0 for Value. State ini juga sama dengan state Readed 0xC0 for

Key dimana mesin mendapat karakter 0xC0 sebelumnya dan memiliki potensi

untuk menerima 0x80 sebagai kombinasi karakter pemisah antara value dan

key. Apabila mesin menerima karakter selain 0x80 maka informasi tersebut

bukan merupakan karakter pemisah melainkan bagian dari key dan mesin akan

kembali ke state Reading value. Apablia mesin menerima karakter 0x80 maka

Page 15: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-15

data tersebut merupakan karakter pemisah dan mesin akan berpindah state

menjadi End Key Value Pair.

11. End Key Value Pair. Pada state ini mesin mengetahui bahwa sebelumnya ia

telah menemukan karakter pemisah dan informasi sebelum pemisah tersebut

merupakan informasi value. Mesin akan menyimpan string dari posisi yang

disimpan pada state Reading Value minus karakter pemisah sebagai informasi

value. Pada state ini mesin akan membandingkan apakah jumlah data yang

dibaca masih ditambah dua karakter adalah lebih kecil dari panjang data (data

+ 2 < length). Data yang dibaca ditambahkan 2 karena berdasarkan hasil

penelitian di byte-byte akhir sering terdapat karakter kosong yang tidak

menyimpan informasi apa-apa. Oleh karena kemungkinan potensi berikutnya

adalah ditemukannya karakter pemisah, maka nilai 2 diambil dari jumlah

karakter pemisah (0xC0 0x80). Apabila jumlah masih lebih kecil, maka mesin

berpindah ke state Prepare Reading key untuk membaca pasangan key-value

berikutnya. Apabila jumlah data yang dibaca lebih besar atau sama dengan

informasi panjang paket maka proses pembacaan paket tersebut selesai dan

mesin berpindah ke state Reading YMSG untuk membaca paket berikutnya.

Apabila terjadi kesalahan dalam komunikasi jaringan atau koneksi terputus,

maka external event ini akan membuat mesin berpindah state menjadi final

state dan keluar dari loop.

12. Error, adalah state dimana terjadi kesalahan dalam pembacaan paket. Mesin

akan melakukan permbersihan buffer lalu mengembalikan ke state awal

Reading YMSG dan memberi notifikasi error.

Page 16: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-16

3.4 Analisis Kebutuhan Perangkat LunakDalam pembahasan analisis kebutuhan perangkat lunak ini akan dibahas beberapa

kebutuhan fungsional dan kebutuhan non-fungsional dari library yang akan dibangun

sesuai dengan hasil dari proses analisis terhadap kebutuhan yang telah dilakukan.

Kebutuhan fungsional merupakan kebutuhan yang berhubungan langsung dengan

fungsi dari library ini. Sedangkan kebutuhan non-fungsional adalah kebutuhan yang

tidak secara langsung berhubungan dengan fungsi utama dari library yang akan

dibuat.

3.4.1 Spesifikasi FungsionalFungsi utama dari library yang akan dibangun adalah menyediakan fungsi dan

prosedur yang digunakan untuk berinteraksi dengan server Yahoo! Messenger. Selain

itu library ini menyediakan fungsi call-back yang akan dieksekusi ketika suatu event

terjadi. User dapat memanfaatkan fungsi call-back tersebut untuk membuat suatu

aplikasi client. Sebagai contoh apabila terdapat pesan baru yang masuk, maka library

ini akan melakukan eksekusi suatu fungsi call-back penerima pesan. User dapat

mengisi fungsi call-back tersebut dengan kode- kode untuk menampilkan pesan

tersebut. Spesifikasi fungsional library AYmsg dapat dilihat pada Tabel 3.1.

3.4.2 Spesifikasi Non-FungsionalSelain kebutuhan fungsional, library ini juga memiliki aspek non-fungsional yang

mendukung spesifikasi fungsional. Antara lain

� User dapat menggunakan library dengan mudah.

� Library harus dapat mendukung segala jenis koneksi internet yang didukung

oleh hardware (3G, Wifi, GPRS, Edge dll).

Page 17: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-17

Tabel 3.1 : Spesifikasi fungsional da ri library AYmsg

No. Fungsi Keterangan

1 Login Melakukan proses otentikasi ke server Yahoo! dengan menggu-nakan username dan password dari akun yang terintegrasi de-ngan layanan Yahoo! lainnya. Fungsi ini merupakan fungsi uta-ma yang harus terlebih dahulu dieksekusi sebelum fungsi-fung-si lain dapat digunakan.

2 Mengirim pesan Melakukan pengiriman pesan teks ke user lain.

3 Menerima pesan Melakukan penerimaan pesan teks yang dikirimkan oleh user lain.

4 Mengubah status Melakukan perubahan status user baik menggunakan status yang telah ditentukan maupun status yang diketikkan oleh user.

5 Mendapatkan daftar teman (buddy list)

Mendapatkan daftar teman yang dikirim dari server Yahoo!yang akan digunakan untuk mengirimkan pesan.

6 Menambahkan teman Menambahkan user lain ke dalam daftar teman yang disimpan di server.

7 Menghapus teman Menghapus user lain dari daftar teman.

8 Menambahkan grup Menambahkan grup baru yang berisi daftar teman-teman yang memiliki kesamaan.

9 Menghapus grup Menghapus suatu grup yang telah ada sebelumnya.

10 Menambahkan teman ke dalam grup

Menambahkan user yang telah menjadi teman ke dalam grupyang telah tersedia.

11 Menghapus teman da-lam suatu grup

Menghapus keanggotaan teman dalam suatu grup tertentu.

12 Bergabung ke dalam conference

Bergabung ke dalam conference dimana dalam suatu ruang conference terdapat beberapa user yang dapat saling bertukar pesan secara bersamaan.

13 Meninggalkan conference

Keluar dari ruang conference.

14 Mengirim pesan ke ru-ang conference

Mengirimkan pesan ke dalam suatu ruang conference dimana user telah tergabung di dalamnya.

15 Menerima pesan dariruangan conference

Menerima pesan yang dikirimkan user lain ke ruangconference.

Page 18: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-18

3.5 Diagram Use CasePada bagian ini akan dijelaskan tentang rancangan library yang akan digunakan.

Bagian analisis akan menggunakan bantuan notasi-notasi Unified Markup Language

(UML). Perancangan library ini tidak akan mengikuti sepenuhnya Unified Process,

tetapi menggunakan kakas-kakas pada UML untuk menggambarkan bagaimana

library yang akan dibangun.

3.5.1 Use Case utama

Library secara umum tidak bisa berjalan tanpa ada aplikasi yang menggunakannya.

Oleh karena itu Use case di atas adalah suatu kasus dimana sebuah aplikasi

menggunakan library AYmsg. Dalam kenyataannya, Tugas Akhir ini lebih berfokus

pada pembuatan library AYmsg tersebut dan aplikasi yang dibuat hanya bertujuan

untuk melakukan pengujian semua fungsi pada library ini.

3.5.1.1 Definisi Aktor

Aktor dalam use case ini hanya dua yaitu:

Gambar 3.8: Use case u ta ma library AYmsg

Page 19: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-19

� User. User adalah pengguna aplikasi yang memanfaatkan library AYmsg

untuk melakukan pengujian. Secara tidak langsung, melalui aplikasi tersebut

user akan memanggil fungsi-fungsi yang terdapat pada library AYmsg.

� Yahoo! Messenger server. Merupakan server Yahoo! Messenger dimana

library akan mengirimkan dan menerima informasi ke server ini.

Apabila terdapat kalimat “user lain” dalam bagian analisis ini, kalimat tersebut bukan

secara khusus bermaksud user lain yang menggunakan aplikasi atau library ini,

melainkan user Yahoo! Messenger lain yang bisa mengakses sever melalui aplikasi ini

atau aplikasi messaging client lainnya.

3.5.2 Narasi Use Case

Tabel 3.2 : Tabel na rasi Use case

No. Elemen Keterangan

1 Nama Login & Logout

Deskripsi Melakukan proses login dan logout ke sisi server.

Prekondisi -

Proses User memasukkan Yahoo! Id dan Password.

Kondisi Akhir Apabila User Id dan Password dapat diotentikasi oleh server maka user dapat masuk ke dalam sistem. Apabila User dan password tidak cocok, user akan mendapatkan notifikasi dari sis-tem. Setelah berhasil melakukan proses otentikasi, user dapat mengakhiri sesi dengan melakukan logout.

2 Nama Manajemen Daftar Teman

Deskripsi Mendapatkan, Menambahkan dan menghapus daftar teman.

Prekondisi User telah berhasil login.

Proses Menambahkan atau menghapus suatu user ke dalam atau dari daftar teman.

Kondisi Akhir User masuk atau terhapus dari daftar teman.

Page 20: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-20

No. Elemen Keterangan

5 Nama Bertukar Pesan

Deskripsi Mengirimkan pesan ke user lain, dan mendapatkan pesan yang dikirimkan oleh user lain, baik dalam conference maupun dalam chat biasa.

Prekondisi User telah berhasil login.

Proses Mengirimkan pesan ke user lain melalui server Yahoo! Mes-senger.

Kondisi Akhir User mengirimkan pesan ke user lain melalui server Yahoo!Messenger.

6 Nama Mengubah Status

Deskripsi Mengubah status user, baik memakai status yang telah didefini-sikan oleh protokol maupun status yang user ketikkan.

Prekondisi User telah berhasil login.

Proses Mengirimkan informasi status baru ke server.

Kondisi Akhir Status user telah ter-update.

7 Nama Manajemen Grup

Deskripsi Memasukkan user ke dalam grup tertentu atau menghapus ke-anggotaan user pada grup tertentu.

Prekondisi User telah berhasil login, user yang ingin ditambahkan atau di-hapus telah termasuk dalam daftar teman.

Proses Memasukkan atau menghapus user dari atau ke dalam grup ter-tentu.

Kondisi Akhir User lain memiliki keanggotaan dalam suatu grup atau keanggo-taan user lain yang telah ada menjadi terhapus.

8 Nama Manajemen Conference

Deskripsi Membuat, bergabung, keluar dan mengirimkan invitasi terhadap suatu ruangan conference yang terdiri oleh satu atau banyak user lain.

Prekondisi User telah berhasil login.

Proses User mengirimkan perintah ke server untuk bergabung ke dalam ruangan conference.

Kondisi Akhir User tergabung dalam ruangan conference.

Page 21: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-21

3.6 Perancangan KelasPada bagian ini akan dijelaskan tentang perancangan kelas secara umum yang akan

dipakai dalam pembuatan library AYmsg ini. Fokus utama dalam pembuatan Tugas

Akhir ini adalah pengembangan library Yahoo! Messenger pada platform Android.

Tetapi dalam pengerjaan Tugas Akhir ini akan dibuat suatu aplikasi sederhana yang

tujuan utamanya adalah untuk menguji fungsionalitas library tersebut. Oleh karena itu

bagian analisis dan perancangan kelas akan dibagi menjadi dua bagian agar terlihat

bagaimana pembagian struktur library dan aplikasi yang akan dibangun.

3.6.1 Diagram Kelas Analisis Bagian Service Library

Pada bagian ini akan dijelaskan kelas-kelas yang termasuk dalam kategori Service

library, yaitu library yang berisi fungsi untuk berkomunikasi dengan server Yahoo!

Messenger. Secara umum hubungan kelas-kelas pada Service Library dapat dilihat

pada Gambar 3.9.

3.6.1.1 Penjelasan Kelas Tahap Analisis Bagian Service Library

Kelas-kelas yang akan dibangun pada aplikasi dan library ini adalah sebagai berikut :

Gambar 3.9: Diagra m kelas analis Service Library

Page 22: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-22

1. Client library. Kelas ini berisi fungsi-fungsi yang digunakan untuk

berinteraksi dengan service.

2. Service library. Kelas ini berisi fungsi-fungsi yang digunakan untuk

berinteraksi dengan server Yahoo! Messenger.

3. Service. Kelas ini merupakan kelas yang berinteraksi dengan server dengan

memanfaatkan kelas Service Library.

4. Callback Client. Merupakan kelas yang akan dipanggil apabila terjadi event

tertentu pada service.

5. Interface Callback. Merupakan interface fungsi callback yang digunakan

untuk berkomunikasi dengan kelas client library.

6. Interface Service. Merupakan interface yang digunakan untuk berkomunikasi

dengan kelas AYmsgService.

3.6.2 Diagram Kelas Analisis Bagian Client Library

Pada bagian ini akan dijelaskan kelas-kelas yang termasuk dalam kategori Client

Library, yaitu kelas yang langsung berhubungan dengan aplikasi yang memanfaatkan

library ini. Secara umum, hubungan kelas-kelas pada Client Library dapat dilihat

pada Gambar 3.10.

Gambar 3.10: Diagra m kelas analis Client Library

Page 23: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-23

3.6.2.1 Penjelasan Kelas Tahap Analis Bagian Client Library

1. Interface callback. Merupakan interface yang digunakan service untuk

berkomunikasi dengan kelas client library.

2. GUI Client. Merupakan kelas yang digunakan memberikan tampilan dimana

user dapat berinteraksi langsung dengan aplikasi atau library ini

3.6.3 Diagram Kelas Analisis Lengkap Library AYmsgDiagram kelas analisis ini akan menunjukkan bagaimana kedua bagian Service

library dan Client library saling berinteraksi. Diagram kelas ini dapat dilihat pada

Gambar 3.11.

Kelas Callback client akan dipanggil oleh bagian Service melalui kelas Interface

Callback dan kelas Client library digunakan untuk berkomunikasi dengan bagian

Service dari library ini.

3.7 Perancangan KelasPada bagian ini akan dijelaskan perancangan kelas-kelas yang akan dibuat

Gambar 3.11: Interaksi kelas-kelas pada Service da n Client library

Page 24: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-24

berdasarkan analisis kebutuhan library. Seperti pada bagian kelas analisis, bagian

perancangan ini akan dibagi menjadi dua bagian. Bagian pertama akan dijelaskan

perancangan kelas-kelas yang termasuk ke dalam kategori Sevice library dan pada

bagian kedua akan dijelaskan perancangan kelas-kelas bagian Client library.

3.7.1 Diagram Perancangan Kelas Bagian Service Library

Gambar 3.12: Diagra m perancangan kelas Bagian Service Library

Page 25: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-25

3.7.2 Deskripsi Perancangan Kelas Bagian Service LibraryPada bagian ini akan dijelaskan deskripsi kelas yang akan dibangun beserta atribut

dan operasinya.

3.7.2.1 Kelas AYmsglib

Kelas ini berisi fungsi-fungsi yang digunakan untuk berkomunikasi dengan server

Yahoo! Messenger.

3.7.2.1.1 Atribut Kelas Aymsglib

Tabel 3.3: Tabel daf tar a t ribu t pa da kelas AYmsglib

Nama Atribut Visibility (private,protected,public)

Keterangan

Socket Private Digunakan untuk membuatsocket TCP/IP ke server Yahoo! Messenger.

Dos Private Digunakan sebagai output stream untuk menulis data dari socket.

Bis Private Digunakan sebagai input stream untuk membaca data dari socket.

Parent Private Digunakan untuk memanggil method pada kelas AymsgService yang mengisntansiasi kelas ini.

3.7.2.1.2 Operasi Kelas Aymsglib

Tabel 3.4: Tabel daf tar operasi pa da kelas AYmsglib

Nama Operasi Visibility (private,protected,public)

Keterangan

Aymsglib(AYmsgService) Public Konstuktor kelas Aymsglib.

Page 26: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-26

Nama Operasi Visibility (private,protected,public)

Keterangan

Connect() Public Membuka koneksi ke server.

Init() Public Melakukan proses inisialisasi koneksi.

Run() Public Operasi main thread.

SendYahooPacket( String[] key, String[] value, int Service, int status, int SessionId)

Public Mengirimkan paket Yahoo! de-ngan pasangan key dan value, status dan service Id.

3.7.2.2 Kelas AYmsgService

Kelas ini adalah kelas service yang akan diimplementasi sebagai building-block

service pada platform Android.

3.7.2.2.1 Atribut Kelas AymsgService

Tabel 3.5: Tabel daf tar a t ribu t pa da kelas AYmsgService

Nama Atribut Visibility (private,protected,public)

Keterangan

Aymsg Private Instans kelas AYmsglib untuk memanggil fungsi-fungsi untukberkomunikasi dengan server Yahoo! Messenger.

Mcallback private Berisi instans kelas callback untuk memanggil fungsi call-back apabila ada event yang terjadi.

Page 27: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-27

3.7.2.2.2 Operasi Kelas AymsgService

Tabel 3.6: Tabel daf tar operasi pa da kelas AYmsgService

Nama Operasi Visibility (private,protected,public)

Keterangan

OnCreate() Protected Fungsi bawaan kelas Service. Fungsi ini akan dipanggil apa-bila kelas ini baru di instansiasi.

OnBind() Public Fungsi bawaan dari kelas Service yang akan dipanggil bila ada kelas Activity yangberusaha menjalankan Service.

SendCallback( String[] key, String[] value, int Service, int status, int SessionId)

Public Memanggil fungsi pada sisi client atau dikenal dengan fungsi-fungsi callback

Mbinder() Public Fungsi bawaan dari Androidsebagai interface kelas

3.7.2.3 Kelas AYmsg

Kelas ini berisi fungsi-fungsi yang akan digunakan oleh client untuk berkomunikasi

dengan Service.

3.7.2.3.1 Atribut Kelas AYmsg

Tabel 3.7: Tabel daf tar a t ribu t pa da kelas AYmsg

Nama Atribut Visibility (private,protected,public)

Keterangan

mService Private Kelas yang digunakan sebagai interface untuk berkomunikasidengan kelas IAYmsgService.

Page 28: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-28

Nama Atribut Visibility (private,protected,public)

Keterangan

clientCallback Private Kelas yang digunakan untuk berkomunikasi dengan kelas IAYmsgCallBack. Fungsi yang dipanggil dari sisi client.

SessionID Private Identifier SessionId yang di ha-silkan oleh server Yahoo! Mes-senger.

Username Private Username yang digunakan un-tuk melakukan otentikasi.

Password private Password yang digunakan un-tuk melakukan otentikasi ke server.

3.7.2.3.2 Operasi Kelas AYmsg

Tabel 3.8: Tabel daftar operasi pa da kelas AYmsg

Nama Operasi Visibility (private,protected,public)

Keterangan

Aymsg(Activity activity) Public Konstuktor.

RegisterClientCallback( IAYmsgCallback callback)

Public Fungsi ini digunakan untuk mendaftarkan fungsi callback.

unRegisterClientCallback( IAYmsgCallback callback)

Public Fungsi ini digunakan untuk menghapus fungsi callback yang telah didaftarkan.

rawPacketHandler( String[] key, String[] value, int Service, int status, int SessionId)

Public Fungsi ini dipanggil ketika ada paket yang dikirimkan oleh server.

OnDisconnect() Public Fungsi ini dipanggil ketika ko-neksi terputus.

3.7.2.4 Kelas IAYmsgServiceCallback

Kelas ini digunakan sebagai interface untuk berkomunikasi dengan service.

Merupakan implementasi dari AIDL.

Page 29: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-29

3.7.2.4.1 Operasi Kelas IAYmsgServiceCallback

Tabel 3.9: Tabel daf tar a t ribu t pa da kelas IAYmsgServiceCallback

Nama Operasi Visibility (private,protected,public)

Keterangan

rawPacketHandler( String[] key, String[] value, int Ser-vice, int status, int Sessio-nId)

Public Fungsi ini dipanggil ketika ada paket yang dikirimkan olehserver.

OnDisconnect() Public Fungsi ini dipanggil ketika ko-neksi terputus

3.7.2.5 Kelas IAYmsgCallback

Kelas ini digunakan sebagai interface berisi fungsi yang akan dipanggil di sisi client

sebagai fungsi callback.

3.7.2.5.1 Operasi Kelas IAYmsgCallback

Tabel 3.10: Tabel daftar a t ribu t pa da kelas IAYmsgCallback

Nama Operasi Visibility (private,protected,public)

Keterangan

rawPacketHandler( String[] key, String[] va-lue, int Service, int sta-tus, int SessionId)

Public Fungsi ini dipanggil ketika adapaket yang dikirimkan oleh server.

OnDisconnect() Public Fungsi ini dipanggil ketika ko-neksi terputus

3.7.2.6 Kelas IAYmsgService

Kelas ini digunakan sebagai interface untuk mendaftarkan fungsi callback ke sisi

Service.

Page 30: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-30

3.7.2.6.1 Operasi Kelas IAYmsgService

Tabel 3.11 : Tabel daf tar a t ribu t pa da kelas IAYmsgService

Nama Operasi Visibility (private,protected,public)

Keterangan

registerCallBack(IAYms-gServiceCallback cb)

Public Fungsi ini digunakan untuk me-register fungsi callback ke sisi Service.

UnRegisterCallBack(IAYmsgServiceCallback cb)

Public Fungsi ini digunakan untuk menghapus fungsi callback di sisi Service yang telah di tam-bahkan sebelumnya.

3.7.3 Diagram Kelas Perancangan Bagian Client Library

3.7.4 Deskripsi Kelas Perancangan Bagian Client LibraryPada bagian ini akan dijelaskan deskripsi kelas-kelas bagian Client Library yang akan

dibangun beserta atribut dan operasinya.

3.7.4.1 Kelas ClientAYmsg

Kelas ini berisi kelas Interface atau GUI yang digunakan untuk membangun tampilan

ke Client dimana melalui kelas ini user dapat berinteraksi dengan aplikasi.

Gambar 3.13: Diagra m perancangan kelas bagian Client Library

Page 31: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-31

3.7.4.1.1 Atribut Kelas ClientAYmsg

Tabel 3.12: Tabel daf tar a t ribu t pa da kelas Clien tAYmsg

Nama Atribut Visibility (private,protected,public)

Keterangan

aymsg Private Instans dari kelas AYmsg yang digunakan untuk memanggilfungsi-fungsi untuk berkomu-nikasi dengan Service.

clientCallback Private Berisi instans dari kelasclientCallback yang digunakan sebagai fungsi callback

3.7.4.1.2 Operasi Kelas ClientAYmsg

Tabel 3.13: Tabel daftar operasi pa da kelas ClientAYmsg

Nama Operasi Visibility (private,protected,public)

Keterangan

OnCreate (Bundle) Public Fungsi bawaan dari Android yang akan dipanggil setiap kalikelas ini di Instansiasi.

OnDestroy Protected Destruktor bawaan dari Andro-id yang akan dipanggil apabila objek ini dihapus dari memori.

3.7.4.2 Kelas ClientCallback

Kelas ini adalah kelas callback sebagai implementasi dari interface IAYmsgCallback.

Berisi fungsi-fungsi yang harus di implementasi oleh user sebagai fungsi callback

yang akan dipanggil ketika ada event yang terjadi pada sisi Service.

Page 32: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-32

3.7.4.2.1 Operasi Kelas ClientCallback

Tabel 3.14: Tabel daf tar a t ribu t pa da kelas Clien tCallback

Nama Operasi Visibility (private,protected,public)

Keterangan

rawPacketHandler( String[] key, String[] value,int Service, int status, int SessionId)

Public Fungsi ini dipanggil ketika ada paket yang dikirimkan olehserver.

OnDisconnect() Public Fungsi ini dipanggil ketika ko-neksi terputus .

3.8 Diagram Kelas Perancangan Lengkap Library AYmsgBagian ini akan memberikan diagram kelas baik yang termasuk ke dalam Client

library dan yang termasuk ke dalam Service Library dan keterhubungan antara kelas-

kelas tersebut. Gambar diagram kelas lengkap dapat dilihat pada Gambar 3.14.

Page 33: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-33

Gambar 3.14: Diagra m kelas pe rancangan lengka p

Page 34: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-34

3.9 Perancangan AntarmukaTujuan akhir tugas ini adalah untuk membuat suatu kumpulan fungsi atau library yang

mengimplementasi protokol Yahoo! Messenger. Dalam Tugas Akhir ini juga akan

dibuat suatu aplikasi sederhana yang tujuannya adalah untuk menguji fungsi-fungsi

dalam library ini.

Tampilan dari aplikasi ini akan dibuat sesederhana mungkin dengan tujuan agar

programmer lain dapat melihat gambaran bagaimana untuk mengembangkan aplikasi

messenger menggunakan library ini.

3.9.1 Activity LoginActivity ini akan digunakan user untuk memasukkan Yahoo! ID dan password serta

melakukan proses login ke server Yahoo! Messenger. Tampilan activity ini dapat

dilihat pada Gambar 3.15.

Tabel 3.15: Daftar operasi yang ter da pa t pa da activity login

Nama Operasi Visibility (private,protected,public)

Keterangan

Login Public Untuk melakukan proses login ke server Yahoo! Messenger.

Gambar 3.15: Tam pilan activity login

Page 35: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-35

Tabel 3.16: Daftar a t ribu t yang ter da pa t pa da activity login

Nama Atribut Visibility (private,protected,public)

Keterangan

txtUsername Private Teks berisi keterangan username.

txtPassword Private Teks berisi keterangan Password.

3.9.2 Activity Utama

Activity ini digunakan user untuk dapat melihat daftar teman, mengirim pesan ke

teman, merubah status, menambah dan menghapus teman, menambah dan menghapus

grup baru, memasukkan dan menghapus keanggotaan user dalam suatu grup.

Gambar 3.16: Ta m pilan activity u ta ma

Page 36: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-36

Tabel 3.17: Daftar operasi yang ter da pa t pa da activity u ta ma

Nama Operasi Visibility (private,protected,public)

Keterangan

sendMessage Public Untuk mengirimkan pesan ke user tertentu.

changeStatus Public Untuk mengubah status user saat ini. Status dapat berupa status yang didefinisikan oleh protokol atau status yang userketikan.

addNewBuddy Public Menambahkan user baru ke dalam daftar teman.

removeBuddy Public Menghapus suatu user lain dari daftar teman.

addNewGroup Public Menambahkan group baru.

removeGroup Public Menghapus suatu group yang telah ada.

AddFriendToGroup Public Menambahkan suatu user ke dalam group tertentu.

RemoveFriendFromGroup Public Menghapus keanggotaan suatu user dari suatu group.

JoinConference Public Bergabung ke dalam ruangconference.

Tabel 3.18: Daftar a t ribu t yang ter da pa t pa da activity u ta ma

Nama Atribut Visibility (private,protected,public)

Keterangan

TxtBuddyList Private Teks berisi keterangan tulisan “Buddy List”.

LstBuddyList Private ListBox berisi daftar teman be-serta statusnya.

Page 37: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-37

3.9.3 Activity Chat

Form ini digunakan untuk mengirimkan pesan ke user lain.

Tabel 3.19: Daftar operasi yang ter da pa t pa da activity chat

Nama Operasi Visibility (private,protected,public)

Keterangan

SendMessange Public Mengirimkan pesan dari txtMessage ke user tertentu.

Clear Public Menghapus isi dari txtMessage.

Tabel 3.20: Daftar a t ribu t yang ter da pa t pa da activity chat

Nama Atribut Visibility (private,protected,public)

Keterangan

TxtConversation Private Percakapan antara user dengan user lain.

TxtMessage Private Pesan yang akan dikirimkan ke user lain.

Gambar 3.17: Ta m pilan activity chat

Page 38: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-38

3.9.4 Activity Conference

Activity ini digunakan untuk mengirimkan dan menerima pesan dari conference.

Tabel 3.21: Daftar operasi yang ter da pa t pa da activity conference

Nama Operasi Visibility (private,protected,public)

Keterangan

SendMessange Public Mengirimkan pesan dari txt-Message ke user tertentu.

Clear Public Menghapus isi dari txtMessa-ge.

Tabel 3.22: Daftar a t ribu t yang ter da pa t pa da activity conference

Nama Atribut Visibility (private,protected,public)

Keterangan

TxtConversation Private Percakapan antara user dengan user lain.

TxtMessage Private Pesan yang akan dikirimkan ke user lain.

TxtConferenceList Private Daftar teman yang tergabung ke dalam ruang conference. tersebut.

Gambar 3.18: Tam pilan activity Conference

Page 39: BAB III ANALISIS DAN PERANCANGAN - · PDF fileserver Yahoo! dengan alamat scs.msg.yahoo.com ... aplikasi ini tetap menggunakan cara ... Pada sub bab 2.1.2 telah dijelaskan bagaimana

III-39

Nama Atribut Visibility (private,protected,public)

Keterangan

TxtConferenceName Private Berisi teks nama dari ruang conference.

TxtFriendList Private Berisi teks “Friend List”.