BAB III
ANALISIS DAN PERANCANGAN
Pada bab ini akan dibahas mengenai analisis dan perancangan perangkat lunak Mobile Yahoo Messenger Client yang akan dikembangkan lebih lanjut. Analisis meliputi deskripsi umum sistem, arsitektur perangkat lunak, analisis kebutuhan perangkat lunak serta analisis Yahoo Messenger Client untuk lingkungan mobile. Hasil analisis akan digunakan sebagai bahan pada tahapan perancangan perangkat lunak. Analisis dan perancangan perangkat lunak menggunakan metode berorientasi objek dengan bantuan kakas UML (Unified Modelling Language).
3.1 Arsitektur Perangkat Lunak
Perangkat lunak yang akan dibangun berfungsi sebagai sebuah client Yahoo Messenger yang berada pada lingkungan mobile. Sebuah client Yahoo Messenger akan terhubung ke server Yahoo agar dapat menggunakan layanan Instant Messaging Yahoo, sama seperti client yang lain. Perangkat lunak ini berarsitektur client-server dimana server memberikan layanan terhadap client yang terhubung ke server. Untuk dapat terhubung dengan layanan Instant Messaging Yahoo, sebuah client harus bisa melakukan login, dan melakukan komunikasinya berdasarkan protokol yang sudah ditentukan Yahoo.
Gambar III-1 Arsitektur Client Yahoo
Client yahoo terhubung ke layanan Instant Messaging Yahoo dengan menggunakan protokol Yahoo. Protokol ini bertugas menangani pembuatan, pengiriman dan penerimaan pesan berupa teks.
3.2 Analisis Kebutuhan Perangkat Lunak
Dalam pembahasan analisis kebutuhan perangkat lunak akan dibahas kebutuhan fungsional dan non-fungsional perangkat lunak yang dibangun yaitu Mobile Yahoo Messenger Client. Spesifikasi kebutuhan perangkat lunak merupakan analisis yang berkaitan dengan kebutuhan perangkat lunak yang dibangun dan lingkungan pengembangan yang dibutuhkan (lingkungan mobile).
3.2.1 Kebutuhan Fungsional
Adapun kebutuhan yang akan diimplementasikan dalam Mobile Yahoo Messenger client adalah sebagai berikut:
Tabel III-1 Kebutuhan Fungsional
Nomor Kebutuhan Keterangan
1 Login Melakukan login untuk dapat
menggunakan aplikasi, dengan memasukkan username dan password yang telah teregistrasi untuk kemudian dilakukan validasi oleh sistem. Setelah login ke server Yahoo berhasil, maka client dapat menggunakan layanan Instant Messaging dari Yahoo.
2 Menampilkan friendlist Menampilkan friendlist untuk username yang sudah berhasil login.
3 Mengganti Status Mengganti status dari user baik itu status dari defined variable ataupun custom status yang ditentukan user sendiri, ataupun menjadi invisible.
4 Mengirim Pesan Melakukan pengiriman pesan ke contact yang sudah ada di friendlist.
5 Menerima Pesan Adalah salah satu kebutuhan utama, agar dapat menerima pesan dari contact yang menghubungi user.
6 Menambah teman baru Dapat melakukan penambahan contact ke dalam friendlist.
7 Menghapus teman Menghapus contact dari friendlist.
8 Mengelola tampilan friendlist Kebutuhan ini untuk memberi pilihan user bagaimana friendlist ditampilkan, misalnya, hanya contact yang online yang ditampilkan.
3.2.2 Kebutuhan Non-Fungsional
Selain kebutuhan fungsional, tentunya ada kebutuhan non-fungsional yang mendukung dan menunjang keberhasilan fitur-fitur diatas, yaitu kemanan. Keamanan disini berarti mengamankan ID dan password pengguna aplikasi saat pengiriman kepada server Yahoo yang nantinya akan dilakukan otentifikasi user berdasarkan ID dan password yang diterima server Yahoo. Hal ini secara teknis telah disediakan library dan akan dilakukan penyesuaian secukupnya, sehingga keamanan user ID dan password terjaga.
3.3 Analisis Yahoo Messenger Client untuk Lingkungan Mobile
Pokok bahasan sub bab ini mencakup deskripsi global dan aspek umum, penyesuaian library yang menjadi referensi dalam pembuatan aplikasi. Selain itu juga ada pembuatan diagram use-case, diagram kelas dan diagram sequence aplikasi berikut penjelasannya.
3.3.1 Deskripsi Global dan Aspek Umum
Gambar III-2 Arsitektur Sistem
Sistem ini memiliki beberapa komponen yang tersusun menjadi suatu susunan arsitektur. Dalam hal berhubungan dengan pengguna, pengembang membutuhkan komponen user interface. Komponen user interface ini menghubungkan pengguna dengan komponen lain yang menjadi fitur utama dalam sistem ini, komponen user interface berupa tampilan di Mobile Device. Komponen Yahoo Messenger Protocol menjadi komponen utama yang bertugas menangani pembuatan, pengiriman dan penerimaan pesan dalam bentuk teks. Pesan yang dikirimkan berupa paket data yang telah dispesifikasikan Yahoo, untuk kemudian dikirim ke server.
3.3.2 Penyesuaian Library dan Service
Dalam mengimplementasikan perangkat lunak, nantinya akan dilakukan modifikasi terhadap library JYMSG yang menjadi acuan, tentunya akan dilakukan penyesuaian secukupnya, selain library tersebut harus difungsikan di platform J2ME, juga harus dilakukan pengubahan terhadap library yang sudah ada, agar bisa digunakan dan berjalan baik.
3.3.2.1 Penyesuaian Library
Penyesuaian kelas terhadap library dilakukan terhadap beberapa kelas utama dan bebrapa kelas lainnya, perubahan yang signifikan terjadi pada kelas-kelas utama. Penjelasan mengenai perubahan kelas dapat dilihat pada Tabel III-2. Tabel tersebut menyatakan asosiasi antara kebutuhan kelas utama yang akan diimplementasikan dengan kelas yang ada dalam library dan penyesuaian yang dilakukan. Kelas-kelas utama ini hanya kelas yang berhubungan dengan kelas yang terkait dengan protokol Yahoo. Selain kelas-kelas utama ini terdapat juga kelas yang berhubungan dengan User Interface. Kelas koneksi yang diimplementasikan adalah hanya kelas DirectConnectionHandler yang menggunakan socket, sedangkan koneksi lain yang menggunakan protokol HTTP yaitu HttpConnectionHandler tidak diimplementasikan.
Tabel III-2 Perubahan kelas utama
No Kebutuhan Kelas Penjelasan dan Penyesuaian dari Library
1. DirectConnection Handler Kelas ini sudah terdapat dalam library, penyesuaian yang dilakukan hanya akan dilakukan perluasan kelas direct connection handler saja, menggunakan Generic Connection Framework yang ada di J2ME, menggunakan socket connection.
3. StringTokenizer J2ME belum menyediakan kelas String Tokenizer,
untuk memecah string menjadi token-token, maka kelas ini akan dibuat.
4. MD5Hash J2ME belum menyediakan fungsi hash generator
yang built-in, maka akan dibuat kelas MD5 yang bisa berjalan di J2ME.
5. Session Kelas ini juga terdapat di dalam library, sebagai
kelas utama yang menangani sebuah Yahoo Messenger session. Perubahan utama dari library, terkait dengan service apa saja yang akan digunakan, kelas ini akan disesuaikan berdasarkan service yang akan digunakan oleh aplikasi. Juga karena skema koneksinya berubah, maka kelas ini juga akan menyesuaikan.
6. Session Listener Akan menghilangkan beberapa method yang tidak
digunakan, seperti method yang berkaitan dengan chatroom, conference dan filetransfer.
3.3.2.2 Penyesuaian Service
Akan mengimplementasikan semua service yang telah ditetapkan library JYMSG, kecuali service yang berkaitan dengan chatroom, filetransfer, voice-chat, dan game. Dari service yang disediakan library (bisa dilihat di 0), maka akan dilakukan penyesuaian service. Tabel III-3 berikut menjelaskan service yang akan digunakan dalam implementasi Yahoo Messenger Mobile Client.
Tabel III-3 Service yang digunakan
Service Constants Nilai
Service terkait login ke server Yahoo
SERVICE_LOGON 0x01
SERVICE_LOGOFF 0x02
Service terkait dengan status user
SERVICE_ISAWAY 0x03
SERVICE_ISBACK 0x04
SERVICE_IDLE 0x05
Service terkait dengan message
SERVICE_MESSAGE 0x06
Service terkait dengan notifikasi user
SERVICE_USERSTAT 0x0a
SERVICE_CONTACTNEW 0x0f
Service terkait dengan Yahoo contact
SERVICE_PING 0x12 SERVICE_GROUPRENAME 0x13 SERVICE_SYSMESSAGE 0x14 SERVICE_PASSTHROUGH2 0x16 SERVICE_NOTIFY 0x4b SERVICE_AUTHRESP 0x54 SERVICE_LIST 0x55 SERVICE_AUTH 0x57 SERVICE_FRIENDADD 0x83 SERVICE_FRIENDREMOVE 0x84 SERVICE_CONTACTIGNORE 0x85 SERVICE_CONTACTREJECT 0x86
3.3.3 Diagram Use Case dan Skenario
Pada bagian ini dijelaskan mengenai keterhubungan antara perangkat lunak dengan user melalui diagram use case UML juga skenarionya.
3.3.3.1 Diagram Use Case
Diagram use case untuk memodelkan Mobile Yahoo Messenger Client dapat dilihat pada Gambar III-3, sedangkan use case scenario bisa dilihat di 0
Gambar III-3 Diagram use case Definisi Aktor
Tabel III-4 Definisi Aktor
No Aktor Deskripsi
1 User Aktor yang menggunakan sistem secara langsung, melakukan hubungan dengan server, dan melakukan eksekusi fungsi-fungsi utama yang ada dalam sistem. 2. Server Aktor yang menyediakan layanan instant messaging
Definisi Use Case
Tabel III-5 Definisi use case
No Use Case Deskripsi
1 Login Melakukan login ke server yahoo, dengan melakukan three way handshaking yang sudah dijelaskan di protokol Yahoo.
2 Logout Keluar dari server Yahoo dan mengakhiri koneksi.
3 Send Message Mengirim pesan ke contact yang ada di dalam friendlist. Contact tujuan harus terlebih dahulu ada di dalam friendlist, hal ini juga menjadi batasan perangkat lunak. 4 Receive Message Menerima pesan dari contact yang sudah mengirim pesan,
contact tidak harus ada pada friendlist.
5 Add New Contact Menambahkan contact baru kedalam friendlist. 6 Remove Contact Menghapus contact dari friendlist.
7 Change Status Mengganti status dari user dengan defined variable ataupun custom status yang ditentukan user ataupun menjadi invisible.
8 Manage View Mengatur bagaimana friendlist ditampilkan ke layar.
3.3.4 Diagram Kelas Analisis
Dari diagram use case dan skenario-skenario yang ada dapat dianalisa objek-objek yang dapat diimplementasikan pada perangkat lunak. Pola objek ini dirancang dalam bentuk kelas yang mempunyai asosiasi satu sama lain membentuk sebuah diagram kelas. Dalam analisis diagram kelas ini hanya akan dijelaskan beberapa kelas kelas utama yang akan dibuat untuk implementasi perangkat lunat. Desain kelas utama dan deskripsinya dapat dilihat pada Tabel III-6, sedangkan diagram kelasnya bisa dilihat pada Gambar III-4.
Tabel III-6 Desain Kelas dan Deskripsinya
No Nama Kelas Deskripsi
Kelas User Interface
1. MainMidlet Kelas Midlet utama aplikasi Mobile Yahoo Messenger
Client.
2. LoginScreen Kelas yang mengatur antarmuka utama pada saat user
melakukan login ke server Yahoo.
3. SigningScreen Kelas ini berfungsi menyediakan antarmuka ketika
proses login terjadi, tampilan kelas ini berupa layar tunggu sampai ke tahap selanjutnya.
4. ContactScreen Kelas ini berfungsi sebagai antarmuka utama aplikasi,
tampilan kelas ini berupa layar yang berisi friendlist.
5. MessageScreen Kelas antar muka sebagai halaman pesan percakapan
antar user dan contact.
Kelas terkait Protokol Yahoo
6. ConnectionHandler Superclass yang menangani koneksi dari sebuah
7. DirectConnectionHandler Turunan dari kelas Connection yang menspesifikasikan koneksi langsung dengan menggunakan socket, kelas inilah yang akan dimodifikasi sebagai kelas utama koneksi dalam pengembangan aplikasi Mobile Yahoo Messenger Client.
8. Util Kelas ini menyimpan dan mengelola defined variable
yang digunakan oleh kelas-kelas lain, juga menyediakan method utama untuk melakukan encode dan atau decode sebuah string.
9. YahooUser Kelas ini merepresentasikan sebuah Yahoo User yang
diketahui, apakah sudah ada dalam friend list atau belum. Atribut kelas ini berupa status login user, status user dan apakah user tersebut sudah menjadi friend.
10. YMSG9Packet Kelas yang berisi struktur data untuk menyimpan
informasi dari sebuah paket data message Yahoo Messenger.
11. Session Merepresentasikan sebuah session dalam Yahoo
Messenger. Ini adalah kelas utama yang menangani keseluruhan proses yang terjadi di Yahoo Messenger.
12 SessionListener Kelas untuk menangani event yang terjadi dalam
sebuah Session, dan mengasosiasikan dengan kelas yang sesuai event yang terjadi.
13 SessionEvent Kelas ini merepresentasikan event dari sebuah message
yang diterima, merupakan superclass dari kelas-kelas event lain. Message bisa berupa notifikasi pesan baru, error, exception, ataupun notifikasi yang lain.
3.3.5 Diagram Sequence
Dalam subbab ini akan dijelaskan tentang diagram sequence yang diperoleh berdasarkan pada diagram use case dan diagram kelas yang telah dibuat. Diagram sequence yang dibahas meliputi Login, Send Message, Receive Message, Add New Contact, Delete Contact, Set Status, dan Logout. Berikut adalah penjelasan dari tiap Diagram Sequence.
Login
Gambar III-5 Diagram sequence login
Gambar III-5 menjelaskan mengenai diagram sequence login. Dimulai dari ketika midlet pertama kali dibuat, kemudian menciptakan layar LoginScreen dan menampilkannya, setelah user memasukkan username dan password dan objek LoginCommandListener dibentuk Fungsi login() dipanggil dengan parameter username dan password tadi, fungsi ini bertujuan melakukan login ke server Yahoo. Akhirnya ContactScreen diciptakan dan layarnya di-refresh dengan method update().
Send Message
Gambar III-6 Diagram sequence send message
Gambar III-6 Menjelaskan diagram sequence untuk Send Message. Setelah aplikasi djalankan pertamakali, kemudian MIDletnya dijalankan, dan setelah login berhasil dan masuk ke
contact screen, dari user yang sudah dipilih, akan diciptakan layar MessageScreen. Layar ini sebagai layar percakapan, ketika pesan sudah diketik dan pengguna menekan tombol send, fungsi sendMessage() akan dipanggil dan layar MessageScreen akan di-refresh dengan pemanggilan fungsi update().
Receive Message
Gambar III-7 Diagram sequence receive message
Gambar III-7 menjelaskan diagram sequence untuk receive Message. Ketika ada pesan masuk, ContactScreen akan memanggil fungsi receiveMessage(), selain itu layar ContactScreen akan diupdate dengan notifikasi pesan masuk. Session listener akan mendapatkan message screen terkait contact yang mengirim pesan, dan kemudian layar MessageScreen akan di-refresh, dengan fungsi update().
Add New Contact
Gambar III-8 Diagram sequence add new contact
Gambar III-8 menjelaskan diagram sequence untuk Add New Contact, hampir sama seperti diagram sequence sebelumnya, setelah objek ContactScreen diciptakan dan di set Listener
nya, dan kemudian didapatkan objek Session yang telah terbentuk. Objek Session inilah yang memanggil method addFriend(), sesuai dengan parameter yang telah ditentukan.
Set Status
Gambar III-9 Diagram sequence set status
Gambar III-9 menjelaskan diagram sequence untuk Set Status, hampir sama seperti sequence diagram sebelumnya, setelah objek ContactScreen diciptakan dan di set Listener nya, dan kemudian didapatkan objek Session yang telah terbentuk. Objek Session inilah yang memanggil method setStatus(), sesuai dengan parameter yang telah ditentukan. Setelah itu layar ContactScreen akan di-update.
Remove Contact
Gambar III-10 Diagram sequence remove contact
Gambar III-10 menjelaskan diagram sequence untuk Remove Contact, hampir sama seperti sequence diagram sebelumnya, setelah objek ContactScreen diciptakan dan di set Listener nya, dan kemudian didapatkan objek Session yang telah terbentuk. Objek Session inilah yang memanggil method setStatus(), sesuai dengan parameter yang telah ditentukan. Setelah itu layar ContactScreen akan di-update.
Logout
Gambar III-11 Diagram sequence logout
Gambar III-11 menjelaskan diagram sequence untuk Logout. Ketika pengguna pertama kali melakukan login, objek LoginScreen akan diciptakan dengan memanggil method startApp(), LoginScreen ini kemudian akan membentuk objek Session dengan method start(), Setelah user menjalanjakn command logout, maka objek Session akan menjalankan method logout(). Ketika proses logout berhasil, loginScreen yang tadi diciptakan akan ditampilkan kembali dengan memanggil method setCurrent().
3.3.6 Kelas Tahap Perancangan
Subbab ini akan membahas perancangan beberapa kelas yang akan diimplementasikan. Perancangan meliputi atribut dan method yang akan diimplementasikan Kelas yang diperoleh pada proses analisis akan dikembangkan lebih lanjut dalam proses perancangan. Masing-masing kelas analisis akan dipetakan dalam kelas perancangan. Pada tahap ini, selain kelas-kelas analisis, didefinisikan beberapa kelas-kelas tambahan yaitu YahooClient, Config, ActiveContactHandler, AddContactScreen dan StatusScreen. Traceability kelas pada tahap analisis dan tahap perancangan ditunjukkan pada Tabel III-7. Kelas YahooClient untuk menangani dan membungkus Session Yahoo. Config dibutuhan untuk menyimpan konfigurasi user, ActiveContactHandler adalah kelas untuk menangani jendela contact yang sedang aktif, sedangkan AddContactScreen dan StatusScreen adalah kelas-kelas Antarmuka tambahan.
Tabel III-7 Traceability Kelas Analisis dan Perancangan
No Nama Kelas Analisis Nama Kelas Perancangan
1 MainMidlet MainMidlet 2 LoginScreen LoginScreen 3 SigningScreen SigningScreen 4 Session Session 5 ContactScreen ContactScreen 6 MessageScreen MessageScreen 7 ConnectionHandler ConnectionHandler 8 DirectConnectionHandler DirectConnectionHandler 9 Util Util 10 YahooUser YahooUser 11 YMSG9Packet YMSG9Packet 12 Session Session 13 SessionListener SessionListener 14 SessionEvent SessionEvent 15 - YahooClient 16 - Config 17 - ActiveContactHandler 18 - AddStatusScreen 19 - StatusScreen
3.4 Mekanisme Komunikasi dengan Yahoo Server
Subbab ini akan menjelaskan mekanisme komunikasi yang dilakukan aplikasi ke server Yahoo. Penjelasan ini mencakup ketika user melakukan login, proses handshaking, kemudian masuk ke dalam messaging state hingga user melakukan logout.
3.4.1 Proses Login
Setelah layar LoginScreen dibuat dan objek Session di Insialisasi (Gambar III-5), kmudian dilakukan pemanggilan fungsi :
final Session yahooSession = new Session(); yahooSession.login(userName, password);
fungsi yahooSession.login() akan mengirimkan username dan password ke server, koneksi akan dibuka dengan memanggil fungsi network.open(), fungsi ini berisi primitif koneksi sebagai berikut :
socket = (SocketConnection)Connector.open("socket://" + host + ":" + port);
Listing kode diatas untuk membuka koneksi socket dengan Yahoo Server, port yang akan dihubungi adalah port 5050, 23, 25 dan 80. Setelah koneksi dibuka, dibentuk objek stream input dan output untuk menangani aliran data :
ips = new YMSG9InputStream(socket.openDataInputStream()); ops = socket.openDataOutputStream();
Setelah koneksi terbuka, fungsi transmitAuth() akan dipanggil, fungsi ini akan mengambil objeks ops, transmit username dan password akan dilakukan dengan menuliskannya kedalam
stream output tadi. Selanjutnya memulai proses handshaking seperti dijelaskan pada bagian 2.2.3
3.4.2 Proses kirim dan terima pesan
Tentunya, proses kirim terima pesan dilakukan setelah proses login berhasil, dan dalam proses login tadi telah membentuk objek socket dan mengasosiasikannya dengan objek stream (ops dan ips).
Proses mengirim pesan dimulai dengan mengambil objek Session yang aktif, dan memanggil fungsi sendMessage(String to, String msg) yang ada dalam objek session. Fungsi ini
akan mentransmissikan paket yang berisi identitas pengirim, identitas tujuan dan isi pesan. Akan dibentuk sebuah PacketBodyBuffer yang berisi paket data Yahoo Messenger.
PacketBodyBuffer body = new PacketBodyBuffer();
body.addElement("0", primaryID); // From (primary ID) body.addElement("1", yid); // From (effective ID) body.addElement("5", to); // To
body.addElement("14", msg); // Message sendPacket(body,SERVICE_MESSAGE, STATUS_OFFLINE);
Packet tadi akan dikirimkan melalui objek output stream yang sudah dibentuk pada proses login :
ops.write(Constants.MAGIC, 0, 4); // Magic code 'YMSG' ops.write(Constants.VERSION, 0, 4); // Version
ops.writeShort(body.length,&0xffff);// Body length (16 bit unsigned)
ops.writeShort(service & 0xffff); // Service ID (16 bit unsigned
ops.writeInt((int)status); // Status (32 bit unsigned)
ops.writeInt((int)sessionId); // Session id (32 bit unsigned)
ops.write(b, 0, body.length); // ---Then the body...
ops.flush(); // ---Now send the buffer
Sedangkan untuk menerima pesan mekanismenya berawal dari objek SessionListener
yang diasosiasikan dengan objek Session, objek ini akan menangani setiap paket data yang
masuk dan menentukan aksi yang dilakukan. Paket yang datang akan dibaca headernya, jika headernya sesuai, maka proses akan berlanjut dan melakukan aksi yang sesuai. Fungsi
receiveMessage(YMSG9Packet pkt) pada objek session akan dipanggil, jika headernya
berisi SERVICE_MESSAGE yang berarti ada pesan masuk, objek FireEvent akan dibentuk,
objek inilah yang akan menjadi parameter di SessionListener. Setelah itu pesan akan ditampilkan ke layar.
3.4.3 Proses Logout
Ketika ingin mengakhiri aplikasi, akan dilakukan proses logout dari Yahoo Server. Fungsi
yahooSession.logout() yang ada dalam objek Session akan dijalankan. Fungsi ini akan
memanggil fungsi transmitLogoff() yang akan mengirimkan paket Yahoo yang berisi
yahoo ID, dan SERVICE_LOGOFF sebelumnya paket yang akan dikirim dikonstruksikan sebagai berikut.
PacketBodyBuffer body = new PacketBodyBuffer(); body.addElement("0", loginID);
sendPacket(body, SERVICE_LOGOFF);
3.5 Perancangan Antarmuka
Kebutuhan akan antarmuka informatif dan mudah dioperasikan oleh user menjadi satu pertimbangan dalam perancangan sebuah perangkat lunak. Karena hal tersebut akan membuat user dapat menggunakan perangkat lunak secara efektif. Antarmuka yang akan dibuat yaitu layar login (Login Screen), layar tunggu ketika login (Signing Screen) dan layar percakapan dengan contact (Message Screen).
3.5.1 Masukan User
Masukan user yang dimaksud dalam hal ini adalah pengorganisasian tombol-tombol pada perangkat mobile yang digunakan (misal: telepon seluler). Pengorganisasian dilakukan sedemikian rupa agar aplikasi mudah dioperasikan dan nyaman digunakan.
Masukan user yang ditangani kelas-kelas antarmuka merupakan kombinasi keypad dan navigation key. Tombol lain seperti soft key digunakan untuk penjelajahan menu yang ada pada aplikasi. Fungsi soft key ini berbeda untuk tiap layar antarmuka namun dipertahankan agar tetap konsisten (misalkan tombol back dan tombol cancel pada soft key kanan). Secara garis besar, penggunaan tombol telepon seluler dapat dilihat pada Tabel III-8. Penggunaan soft key untuk masing-masing layar antarmuka secara lebih jelas dapat dilihat pada perancangan antarmuka.
Tabel III-8 Konfigurasi Penggunaan Tombol Mobile Phone
Tombol Fungsi
Keypad Melakukan edit teks input seperti isi pesan, username, dsb.
Soft key kiri Perintah OK, dan menampilkan menu pada layar contact screen
Soft key kanan Perintah back, cancel, dan menampilkan menu contact yang aktif.
Antarmuka yang akan dirancang akan dibuat mirip dengan antarmuka Yahoo Messenger untuk PC, agar user familiar dengan informasi yang ditampilkan. Layar antarmuka untuk login dibuat mirip, dan daftar contact di layar antarmuka Contact Screen dibuat mirip. Namun pengelompokan menu akan disesuaikan dengan layar mobile device.
3.5.2 Antarmuka Login Screen
Gambar III-12 adalah layar yang menunjukkan kondisi ketika pengguna ingin login ke server Yahoo. Pengguna akan memasukkan kolom username dengan Yahoo ID yang telah terdaftar ke Yahoo, dan Password yang sesuai dengan Yahoo ID. Pengguna dapat melakukan login ketika kedua field sudah terisi. Gambar III-13 menjelaskan pilihan menu ketika pengguna menekan tombol menu, ada pilihan untuk mengosongkan field, melihat halaman about, dan keluar dari aplikasi.
Gambar III-12 Login Screen
Gambar III-13 Menu Login Screen 3.5.3 Antarmuka Signing Screen
Gambar III-14 Signing Screen
Gambar III-14 Gambar III-14adalah layar yang ditampilkan ketika pengguna menunggu proses login berhasil, pengguna juga bisa membatalkan loginnya dengan menekan tombol cancel. Jika proses login tidak berhasil, maka akan ditampilkan alert dan kembali ke Login Screen.
3.5.4 Antarmuka Contact Screen
Gambar III-15 Contact Screen
Gambar III-15 adalah layar yang ditampilkan ketika pengguna telah berhasil login, layar yang ditampilkan berupa daftar teman yang dimiliki pengguna. Contact Screen adalah layar utama aplikasi. Di layar contact ada icon notifikasi di setiap contact yang menandakan status offline atau online, juga ada notifikasi ketika ada pesan baru masuk. Gambar III-16 menjelaskan pilihan menu ketika pengguna menekan tombol options di layar Contact Screen, pengguna bisa mengrim pesan, menghapus contact yang dipilih, menambah contact baru, mengelola tampilan, mengganti status, logout, dan keluar dari aplikasi.
Gambar III-16 Menu Contact Screen
Untuk memulai percakapan, sebelumnya pengguna harus memilih contact, kemudian memilih pilihan chat. Di layar ini pengguna juga bisa melakukan penghapusan contact, mengatur tampilan friendlist, mengganti status, dan melakukan Logout.
Gambar III-17 Input pada Contact Screen
Setelah memilih contact, pengguna memasukkan teks di layar masukan untuk contact, kemudian menekan tombol send untuk masuk ke layar percakapan (Message Screen).
3.5.5 Antarmuka Message Screen
Gambar III-18 Message Screen
Pesan yang telah dikirimkan ke contact, akan ditampilkan di layar yang disebut Message Screen (Gambar III-18) yang akan menjadi layar percakapan, dalam satu waktu bisa ada banyak layar percakapan yang ada, dan user bisa berpindah layar melalui pilihan Window di Layar Contact Screen.
Gambar III-19 adalah layar yang ditampilkan ketika user menekan tombol menu di layar Message Screen, jika user memilih pilihan send message (1), layar input Contact Screen akan ditampilkan seperti pada Gambar III-17. Selain itu user juga dapat membersihkan layar message, menutup Message Screen, mengirim buzz, mengganti status, logout dan keluar dari aplikasi (Exit Application).
Menu 1. Send Message 2. Clear Screen 3. Close Window 4. Send Buzz 5. Change Status 6. Signout 7. Exit Application
Gambar III-19 Menu Message Screen
3.6 Batasan Perangkat Lunak
Perangkat lunak yang dibangun menggunakan library JYMSG yang telah dimodifikasi, tentunya batasan library tersebut juga menjadi batasan perangkat lunak. Batasan library telah dijelaskan pada BAB II sebelumnya, selain itu ada batasan lain untuk aplikasi ini, yaitu :
• Tidak bisa melakukan sign-up, atau pendaftaran account baru Yahoo. • Belum mendukung smileys, audibles dan Voice juga IM Vironment.
• Karena Protokol Yahoo Messenger adalah proprietary protocol, maka suatu saat ketika Yahoo telah mengganti mekanisme handshaking yang terjadi pada proses loginnya, maka aplikasi ini harus dimodifikasi sesuai library yang baru, yang telah mendukung protokol Yahoo Messenger terbaru. Tetapi untuk saat ini aplikasi ini mendukung protokol Yahoo versi 9,10,11 dan 12.