SISTEM PENGHANTARAN MESEJ SEGERA PELBAGAI PELANTAR BERASASKAN JAVA SAZARUL IZAM BIN MD SAAD Ijazah Sarjana Muda Sains Komputer Fakulti Sains Komputer dan Sistem Maklumat Universiti Teknologi Malaysia 23 MAC 2005
v ABSTRAK Dalam era kepesatan bidang teknologi maklumat dan komunikasi yang serba canggih ini, teknologi komunikasi menjadi bidang yang hangat diperkatakan. Kemunculan e-mel membenarkan pengguna untuk berinteraksi antara satu sama lain secara maya. Tetapi penggunaan e-mel membataskan pengguna yang ingin berkomunikasi secara atas-talian. Justeru itu, banyak aplikasi penghantaran mesej segera yang muncul di pasaran yang membenarkan pengguna dari pelantar yang sama sahaja berkomunikasi. Keadaan ini menyebabkan sistem penghantaran mesej segera pelbagai pelantar yang berasaskan Java ini dibangunkan untuk memudahkan pengguna dari pelbagai pelantar berkomunikasi secara atas-talian. Pembangunan aplikasi pelayan yang menggunakan teknik banyak-bebenang memudahkan sambungan antara pelangganpelanggan. Manakala aplikasi pelanggan membenarkan komunikasi antara pengguna, penghantaran fail, bilik bualan dan merancang aktiviti pada kalendar. Teknologi mesin maya Java membolehkan pengguna dari pelantar yang berlainan berkomunikasi antara satu sama lain. Projek ini dibangunkan menggunakan Model Prototaip. Antara perkakasan yang akan digunakan adalah tiga jenis komputer yang berlainan pelantar iaitu Microsoft Windows XP, Red Hat Linux dan Sun Solaris bagi tujuan pembangunan dan pengujian. Perisian yang digunakan untuk pembangunan projek ini adalah Java 2 Software Development Kit (SDK) dengan menggunakan pangkalan data MySQL.
vi ABSTRACT In the era of growing edge for information technology and communication, the communication technology has frequently discussed widely. The appearance of email has enables user to interact with each other virtually. But the usage of email has limited the users who wish to make a communication online. Therefore, more instant messaging application has appeared in the current market that allow user from same platform to communicate. Because of this situation, Multiplatform Instant Messaging System based on Java was developed to ease the online communication between users instantly. The development of server application using multithreaded technique simplifies the connection between clients. Whereas, the client application allows communication process, file messaging, chat room and planning activities on calendar. The Java virtual machine technology allows a communication between users on the different platforms. This project has been developed using Prototype Model. The hardware that will be use in this project is three kinds of computer namely Microsoft Windows XP, Red Hat Linux and Sun Solaris for the purpose of development and testing. The software that will be use in the development of this project is Java 2 Software Development Kit (SDK) along with MySQL database.
vii KANDUNGAN BAB PERKARA HALAMAN TAJUK PENGAKUAN DEDIKASI PENGHARGAAN ABSTRAK ABSTRACT KANDUNGAN SENARAI RAJAH SENARAI JADUAL SENARAI SINGKATAN SENARAI ISTILAH SENARAI LAMPIRAN i ii iii iv v vi vii xii xiv xv xvi xvii 1 PENGENALAN PROJEK 1.1 Pengenalan 1 1.2 Pernyataan Masalah 3 1.3 Matlamat 4 1.4 Objektif 4 1.5 Skop 5
viii 1.6 Justifikasi Pembangunan Projek 6 2 KAJIAN LITERATUR 2.1 Pengenalan 8 2.2 Kajian Terhadap Aplikasi Sedia Ada 9 2.2.1 Aplikasi AOL Instant Messenger 9 2.2.2 Aplikasi ICQ 10 2.2.3 Aplikasi Yahoo! Messenger 10 2.2.4 Aplikasi Windows Messenger 11 2.3 Analisis Masalah Mengenai Sistem Sedia Ada 12 2.4 Pengenalan Java 13 2.4.1 Ciri-ciri Java 14 2.4.1.1 Senibina Java 16 2.4.1.2 Mesin Maya Java 17 2.4.1.3 Banyak-bebenang 21 2.4.2 Java Database Connectivity (JDBC) API 23 2.4.3 PHP 24 2.4.4 MySQL 25 2.4.5 Algoritma MD5 Hashing 26 2.4.6 Kelas Swing 27 2.4.7 Protokol TCP 28 2.5 Justifikasi Pemilihan Peralatan Dan Teknologi 28 2.6 Rumusan 30 3 METODOLOGI PROJEK 3.1 Pendahuluan 31 3.2 Model Prototaip 32 3.2.1 Justifikasi Pemilihan Model Prototaip 33
ix 3.3 Metodologi Pembangunan Sistem 33 3.3.1 Fasa Perancangan 34 3.3.2 Fasa Analisa 34 3.3.3 Fasa Rekabentuk 35 3.3.4 Fasa Implementasi Awal 35 3.3.5 Fasa Implementasi Akhir dan Pengujian 36 3.4 Analisis Keperluan Sistem 36 3.4.1 Keperluan Perkakasan 36 3.4.2 Keperluan Perisian 37 4 ANALISA DAN REKABENTUK SISTEM 4.1 Pengenalan 39 4.2 Analisa Keperluan 40 4.2.1 Keperluan Sistem 40 4.2.2 Keperluan Pengguna 40 4.3 Rekabentuk Umum Sistem 41 4.4 Rekabentuk Sistem Penghantaran Mesej Segera 42 4.4.1 Aplikasi Pelayan 43 4.4.2 Aplikasi Pelanggan 44 4.4.2.1 Fungsi Pendaftaran Identiti Diri 45 4.4.2.2 Fungsi Perbualan Mesej Teks 46 4.4.2.3 Fungsi Penghantaran Fail 46 4.4.2.4 Fungsi Pengurusan Bilik Bualan 46 4.4.2.5 Fungsi Pengurusan Peristiwa Pada Kalendar 47 4.5 Rekabentuk Sistem Pentadbir 47 4.5.1 Fungsi Penambahan Pengguna 48 4.5.2 Fungsi Pengemaskinian Pengguna 49 4.5.3 Fungsi Penghapusan Pengguna 49
x 4.5.4 Fungsi Pencarian Pengguna 49 4.6 Rajah Jujukan 50 4.7 Rekabentuk Pangkalan Data 51 4.7.1 Jadual jim_user 52 4.7.2 Jadual jim_status 53 4.7.3 Jadual jim_buddy 54 4.7.4 Jadual jim_offmsg 55 4.7.5 Jadual jim_event 56 4.7.6 Jadual jim_islam 57 4.7.7 Jadual jim_doa 58 4.7.8 Jadual jim_hadis 58 4.8 Rekabentuk Antaramuka 59 4.8.1 Rekabentuk Antaramuka Pelayan 59 4.8.2 Rekabentuk Antaramuka Pelanggan 60 5 IMPLEMENTASI DAN PENGUJIAN 5.1 Pengenalan 61 5.2 Persekitaran Pembangunan 62 5.2.1 Persekitaran Perkakasan 62 5.2.2 Persekitaran Perisian 63 5.3 Implementasi Aplikasi Pelayan 65 5.3.1 Kelas JdbcMysql 65 5.3.2 Kelas Server 69 5.3.3 Interface ChatConstants 76 5.3.3.1 Konstan Mesej 76 5.3.3.2 Konstan Status Pengguna 78 5.3.3.3 Konstan Agama Pengguna 78 5.3.3.4 Konstan Ikon Senyuman 79 5.4 Implementasi Aplikasi Pelanggan 79
xi 5.4.1 Kelas MainFrame 80 5.4.2 Kelas Client 81 5.4.3 Kelas ChatDialog 82 5.4.4 Kelas UserTreePanel 83 5.5 Pengujian 84 5.5.1 Pengujian Aplikasi Pelayan 85 5.5.2 Pengujian Aplikasi Pelanggan 86 5.6 Rumusan 89 6 PERBINCANGAN DAN KESIMPULAN 6.1 Hasil dan Pencapaian 90 6.2 Masalah dan Kelemahan Sistem 91 6.3 Cadangan Pembaikan dan Peningkatan 92 6.4 Kesimpulan 93 RUJUKAN 95 LAMPIRAN 96 Lampiran A-H 96-174
PENGHARGAAN Pertama sekali bersyukur saya ke hadrat Ilahi kerana dengan limpah kurnia-nya dapatlah saya menyiapkan laporan Projek Sarjana Muda ini. Jutaan terima kasih dan setinggi-tinggi penghargaan saya tujukan kepada penyelia saya iaitu Encik Noh Bin Abd Samad yang telah banyak membimbing dan meluangkan masanya untuk menjayakan projek ini. Setulus penghargaan juga saya tujukan kepada para pensyarah serta staf Jabatan Sistem dan Komunikasi Komputer atas bantuan dan kerjasama yang diberikan sepanjang perlaksanaan projek ini. Juga buat Mohd Azrul bin Rais, Muhd Najib bin Abd Basir, Muhammad Syafiq bin Abdul Aziz, Fairun Azrin bin Che Ani, Ambok Mohd Fadhli bin Abdullah, Noor Muhammad bin Kamaruddin, Mohd Azli bin Ismail, Mohd Hafiz bin Roslim, Nik Khairul Rizal bin Nik Aziz, Muhammad Zulkifli bin Mohd Nor, Luqmanulhakim bin Mohd Nasir, Muhamad Hafiz bin Othman, Mohd Zain Ariff bin Mohd Yunus, Nik Azhan bin Nik Arif, Mohd Izad bin Misri, Noor Khamarul bin Khairudin, LOST BOYS dan rakan-rakan seperjuangan yang lain yang sentiasa memberi bantuan, dorongan serta galakan kepada saya. Akhir sekali tidak dilupakan juga sekalung penghargaan saya berikan kepada ibu bapa serta keluarga yang telah banyak berkorban demi kepentingan saya. Semoga Allah S.W.T membalas jasa baik kalian semua. Wasalam.
BAB 1 PENGENALAN PROJEK 1.1 Pengenalan Kepesatan bidang teknologi maklumat dan komunikasi pada masa kini memang tidak dapat dinafikan lagi. Banyak teknologi baru yang dihasilkan untuk memudahkan urusan pengguna tidak kiralah sama ada yang kecil atau besar. Perkembangan teknologi ini juga turut mempengaruhi bagaimana cara untuk pengguna berinteraksi antara satu sama yang lain. Jika sebelum ini pengguna hanya dapat berkomunikasi dengan menggunakan talian tetap atau hanya mengutus surat tetapi sekarang pelbagai teknik komunikasi telah diaplikasikan. Antara teknik komunikasi yang popular adalah berkomunikasi dengan menggunakan mel elektronik atau lebih dikenali sebagai e-mel. Dengan menggunakan perkhidmatan e-mel pengguna dapat berhubung dengan pantas dan dapat menjimatkan kos. Selain itu, pengguna juga boleh menyelit gambar digital ke dalam e-mel yang hendak dihantar kepada rakan mereka. Tetapi penggunaan e-mel ini tidak dapat menandingi kepantasan berkomunikasi yang disediakan oleh perkhidmatan penghantaran mesej segera (instant messaging
2 service) yang ada pada masa kini. Perkhidmatan ini menawarkan cara komunikasi yang lebih efisien di mana pengguna dapat berkomunikasi antara satu sama lain pada masanyata dan dapat melaksanakan fungsi yang terdapat pada perkhidmatan e-mel. Dengan menggunakan perkhidmatan ini, pengguna dapat berbual secara atas-talian dan dapat bertukar-tukar pendapat dengan lebih pantas. Selain dapat menjimatkan masa, perkhidmatan ini juga dapat menjimatkan kos dan tenaga. Perkhidmatan penghantaran mesej segera membenarkan pengguna untuk menyimpan senarai pengguna lain yang ingin dihubungi. Pengguna yang telah berdaftar boleh menghantar mesej secara masa-nyata kepada pengguna yang ada dalam senarai mereka sekiranya pengguna dalam senarai mereka berada atas-talian. Senarai pengguna ini biasanya dipanggil senarai rakan (buddy list) atau senarai kontak (contact list). Aplikasi yang terdapat pada pelanggan akan memberitahu kepada pengguna sekiranya rakan yang terdapat pada senarai rakan sudah berada atas-talian atau tidak. Ikon kecil yang terdapat di sebelah senarai rakan pengguna tersebut akan menandakan bahawa mereka sudah berada pada meja mereka. Penghantaran mesej kepada rakan mereka selalunya akan membuka tetingkap kecil yang membolehkan mereka berhubung antara satu sama lain dengan cara menaip di mana kedua-dua pihak boleh melihat apa yang ditaip oleh mereka berdua. Aplikasi penghantaran mesej segera ini biasanya mengandungi ciri-ciri antaranya seperti bilik bualan yang membenarkan pengguna dan rakan-rakan mereka berinteraksi antara satu sama lain dalam tetingkap yang sama dan pengguna juga boleh menghantar dokumen atau gambar sesama mereka. Aplikasi ini juga membenarkan pengguna untuk menghantar mesej talian melahu sekiranya rakan mereka tiada di atas-talian dan membolehkan rakan mereka membaca mesej tersebut sebaik sahaja mereka berada atas-talian.
3 1.2 Pernyataaan Masalah Perkhidmatan Penghantaran Mesej telah berkembang dan menjadi salah satu teknologi baru untuk berkomunikasi di dalam Internet. Idea asas tentang perkhidmatan ini ialah pelayan akan menyediakan sambungan di antara pelanggan-pelanggan yang telah berdaftar dan berminat untuk memulakan percakapan. Apabila pelanggan telah berhubung, mesej akan dihantar melalui pelayan. Untuk menggunakan perkhidmatan ini, pelanggan perlu memasang aplikasi pelanggan pada komputer mereka. Kebanyakan aplikasi penghantaran mesej segera yang ada sekarang seperti AOL Instant Messenger (AIM), Yahoo! Messenger dan MSN Instant Messenger lebih banyak menumpukan pembangunan aplikasi mereka pada persekitaran atau pelantar Microsoft Windows sahaja. Ini terjadi kerana lebih banyak pengguna yang menggunakan pelantar tersebut berbanding dengan pelantar yang lain seperti Red Hat Linux, Macintosh dan Sun Solaris. Kesusahan dalam mengendalikan pelantar-pelantar tersebut dan antaramuka pengguna yang kurang menarik menyebabkan pengguna tidak gemar menggunakan pelantar-pelantar tersebut. Faktor bahasa pengaturcaraan juga menjadi punca permasalahan kerana aplikasi ini banyak dibangunkan menggunakan bahasa pengaturcaraan C atau C++ menyebabkan aplikasi yang mereka bangunkan sukar untuk diimplemen pada pelantar yang lain. Ini menyebabkan pengguna dari pelantar lain sukar untuk berkomunikasi dengan pengguna yang menggunakan pelantar tersebut. Mereka juga sukar untuk mengetahui sama ada rakan mereka telah berada atas talian atau pun tidak pada masa-nyata. Untuk menyelesaikan masalah pelbagai pelantar ini, penggunaan bahasa pengaturcaraan yang dapat menyokong aplikasi pelbagai pelantar perlu dilaksanakan. Bahasa pengaturcaraan Java yang diperkenalkan oleh SUN pada tahun 1995 boleh digunakan untuk mengaturcara sistem ini. Komponen Java Virtual Machine yang terdapat pada bahasa pengaturcaraan ini membolehkan aplikasi ini dilaksanakan pada pelbagai pelantar. Oleh itu, sistem yang akan dibangunkan ini diharap akan dapat membantu menyelesaikan masalah yang dihadapi. Bab ini merupakan fasa terawal bagi membangunkan projek ini.
4 Pada fasa ini, beberapa kajian penting dibuat terhadap masalah semasa yang wujud. Ini bertujuan untuk memudahkan proses penetapan objektif dan matlamat membangunkan aplikasi ini. Skop projek turut dibincangkan di dalam bab ini bagi menggariskan bidang yang dikaji supaya projek yang dibangunkan mencapai objektif dan matlamat. 1.3 Matlamat Matlamat projek ini adalah untuk menghasilkan satu sistem pelanggan-pelayan yang membolehkan pengguna dari pelbagai pelantar sistem pengoperasian berinteraksi antara satu sama lain pada masa-nyata dengan menggunakan mesej teks. 1.4 Objektif Objektif-objektif projek ini adalah seperti yang berikut: i. Menghasilkan satu sistem pelanggan-pelayan yang membolehkan pengguna dari pelbagai pelantar seperti Microsoft Windows, Macintosh dan Linux berinteraksi antara satu sama lain pada masa-nyata dengan menggunakan mesej teks. ii. Menyediakan pelayan mesej yang menggunakan konsep banyak-bebenang (multithreading) di mana pelayan mesej dapat memproses sambungan-sambungan pelanggan dalam bebenang yang berbeza.
5 iii. Merekabentuk aplikasi pelanggan yang dapat berinteraksi antara pelayan untuk memaparkan senarai rakan talian dan senarai mesej offline. Pelanggan juga boleh menghantar fail kepada pelanggan yang lain. iv. Menghasilkan pangkalan data dinamik yang boleh melaksanakan proses seperti menyimpan senarai mesej offline dan senarai rakan talian bagi seseorang pengguna bersesuaian dengan sistem yang dibangunkan. 1.5 Skop Skop projek adalah meliputi perkara-perkara berikut: i. Mengumpul dan mengkaji aplikasi penghantaran mesej segera yang ada di pasaran serta mengkaji kelemahan-kelemahan yang terdapat pada aplikasi-aplikasi tersebut. ii. Membangunkan satu sistem yang menggunakan bahasa pengaturcaraan Java kerana bahasa ini mempunyai satu set kelas yang menyediakan protokol rangkaian yang menyokong sambungan pelbagai pelantar sistem pengoperasian. iii. Membangunkan sistem ini pada persekitaran Red Hat Linux. iv. Menyediakan antaramuka pengguna yang terdapat pada aplikasi pelanggan dengan menggunakan kelas Swing yang terdapat dalam Java. v. Mengimplementasi bilik bualan yang akan membenarkan pengguna berinteraksi antara satu sama lain dalam sistem ini.
6 vi. Menyediakan sistem kalendar yang akan membenarkan pengguna untuk menguruskan jadual harian bersama pengguna yang lain. Pengguna juga boleh menghantar emel kepada pengguna yang terdapat dalam senarai rakan talian mereka. vii. Membangunkan laman web pendaftaran dan kemaskini pengguna dengan menggunakan teknologi PHP. viii. Membangunkan pangkalan data bagi sistem ini dengan menggunakan aplikasi MySQL kerana capaian datanya yang pantas. ix. Menyediakan ciri-ciri Islam pada sistem ini di mana pengguna yang beragama Islam boleh memberi salam serta boleh menghantar doa dan hadis kepada rakan mereka. x. Memaparkan masa yang diambil untuk memaparkan mesej kepada pengguna yang lain yang berada di atas-talian. xi. Pengujian sistem ini akan dilaksanakan pada pelantar Red Hat Linux, Microsoft Windows XP dan Sun Solaris. 1.6 Justifikasi Pembangunan Projek Kepentingan projek ini adalah untuk memberi peluang kepada pengguna yang sebelum ini sukar untuk berkomunikasi dengan pengguna yang menggunakan Microsoft Windows supaya dapat berinteraksi sepenuhnya. Projek yang akan dibangunkan juga akan mengkaji kepantasan penghantaran mesej antara dua pengguna secara masa-nyata.
7 Selain dapat berkomunikasi antara satu sama lain, pengguna juga akan dapat menguruskan aktiviti-aktiviti mereka dengan menggunakan sistem kalendar yang bakal dibangunkan. Kelebihan projek ini adalah pada pembangunan aplikasi pelayannya sendiri. Aplikasi pelayan dapat menguruskan sambungan-sambungan dari pelanggan yang terdiri dari pelbagai pelantar dengan menggunakan teknik banyak-bebenang secara cekap dan efisien. Selain itu, aplikasi pelayan juga akan dapat menyimpan senarai pengguna dan senarai mesej tutup-talian dengan menggunakan pangkalan data MySQL bagi memudahkan interaksi antara pengguna.