PELANGGAN E-MEL BERASASKAN WEB SERVICES-JAVA SERTA PENAPISAN SPAM LEE BOON YAU. Ijazah Sarjana Muda Sains Komputer

Similar documents
BORANG PENGESAHAN STATUS TESIS

TUITION CENTRE MANAGEMENT SYSTEM (TCMS) ZARIFAH BINTI MOHD PAHMI UNIVERSITI TEKNIKAL MALAYSIA MELAKA

Pengenalan Sistem Maklumat Dalam Pendidikan

VIRTUAL PRIVATE NETWORK: ARCHITECTURE AND IMPLEMENTATIONS

ssk 2023 asas komunikasi dan rangkaian TOPIK 4.0 PENGALAMATAN RANGKAIAN Minggu 11

UNIVERSITI SAINS MALAYSIA. CMT322/CMM323 Web Engineering & Technologies [Kejuruteraan & Teknologi Web]

Semasa buku ini ditulis XAMPP mengandungi empat versi:

B,8 PERKHIDMATAN KREDIT DAN PERBANKAN. Pemindahan Data PROSEDUR UNIT KOMPUTER. BPKP/KlOK-117 Bilangan Semakan : 0 Tarikh : PERUBAHAN.

INSTRUCTION: This section consists of FOUR (4) structured questions. Answer ALL questions.

FIRST TIME LOGIN & SELF REGISTRATION USER GUIDE LOG MASUK KALI PERTAMA & PENDAFTARAN SENDIRI PANDUAN PENGGUNA

MANAGE COURSE RESOURCES LABEL TEXT PAGE URL BOOK FILE FOLDER IMS CONTENT PACKAGE

INSTRUCTION: This section consists of FOUR (4) structured questions. Answer ALL questions.

Aplikasi Permainan Pembelajaran untuk Kanak-Kanak

Panduan Guru Maker UNO/ Arduino

ssk 2023 asas komunikasi dan rangkaian TOPIK 4.0 PENGALAMATAN RANGKAIAN

INSTRUCTION: This section consists of TWO (2) structured questions. Answer ALL questions.

Pengguna akan diberikan Username dan Password oleh Administrator untuk login sebagai admin/conference Manager bagi conference yang akan diadakan.

Performance of Real Time Traffic In The Ethernet And WLAN Using TCP And UDP Protocols. Punitha Subbramaniam

Study of Distributed Coordination Function (DCF) and Enhanced DCF (EDCF) in IEEE MAC Protocols for Multimedia Applications.

BORANG PENGESAHAN STATUS TESIS* TERHAD (Mengandungi maklumat TERHAD yang telah ditentukan oleh organisasi/badan di mana penyelidikan dijalankan)

UNIVERSITI SAINS MALAYSIA. CCS521 Advanced Distributed Systems Concepts and Design [Konsep dan Reka Bentuk Sistem Teragih Maju]

DEVELOPMENT OF VENDING MACHINE WITH PREPAID PAYMENT METHOD AMAR SAFUAN BIN ALYUSI

MICROSOFT EXCEL. Membina Hamparan Elektronik Fungsi Hamparan Elektronik

BORANG PENGESAHAN STATUS TESIS


UNIVERSITI TEKNIKAL MALAYSIA MELAKA

BORANG PENGESAHAN STATUS TESIS

BORANG PENGESAHAN STATUS TESIS*

Panduan Menggunakan Autoresponder FreeAutobot.com

SMART BODY MONITORING SYSTEM MOHAMAD KASYFUL AZIM BIN AHMAD

SISTEM PENGHANTARAN MESEJ SEGERA PELBAGAI PELANTAR BERASASKAN JAVA SAZARUL IZAM BIN MD SAAD. Ijazah Sarjana Muda Sains Komputer

COMBINING TABLES. Akademi Audit Negara. CAATs ASAS ACL / 1

VIDEO DISTORTION MEASUREMENT USING PSNR IN WAVELET DOMAIN MOK YUNG LENG

PANDUAN PENGGUNA (SUPPLIER) MAINTAIN CERTIFICATES/SUPPLIER DETAILS SUPPLIER RELATIONSHIP MANAGEMENT SUPPLY CHAIN MANAGEMENT SYSTEM (SCMS)

LOW COST MP3 PLAYER USING SD CARD KHAIRIL AMRI BIN MUHAMAD UNIVERSITI TEKNIKAL MALAYSIA MELAKA

Pengaturcaraan web ASP.NET. Sinopsis:

INSTRUCTION: This section consists of TEN (10) structured questions. Answer ALL questions.

UNIVERSITI MALAYSIA PAHANG BORANG PENGESAHAN STATUS TESIS

HOME APPLIANCES MONITORING AND CONTROL USING SMARTPHONE APPLICATION AHMAD DANIAL BIN AHMAD NAZRI

PEMINDAHAN DATA MENGGUNAKAN KOMUNIKASI CAHAYA BOLEH DILIHAT DAN APLIKASI MUDAH ALIH. Annisa Zakiah Binti Kamarudin Khairul Azmi Bin Abu Bakar

Panduan Pengguna Autodesk Education Community

M2U MANUAL PENGGUNA USER MANUAL M2UNHJ. 0 P a g e BAHAGIAN SIMPANAN DAN PENGELUARAN JABATAN KHIDMAT PENDEPOSIT DAN OPERASI LEMBAGA TABUNG HAJI

PERFORMANCE EVALUATION OF LEACH PROTOCOL FOR WIRELESS SENSOR NETWORKS USING NS2 MUHAMAD FAIZ BIN RAMDZAN

PROJECT TITLE JARIPAH BINTI ADZHAR

DARI KAUNTER KE SISTEM DALAM TALIAN

DESIGN ANALYSIS OF EXTERIOR CAR BODY PART BASTIAN WIBAR BIN MOMANG

KELAS MAYA DENGAN MENGGUNAKAN TEKNOLOGI PENGARUSAN VIDEO LIEW SHAW CHIN

SISTEM KOMUNIKASI BERDASARKAN ALGORITMA PENYULITAN AES

1. Threats bermaksud ancaman, atau lebih dikenali sebagai malware (malicious

HERMAN. A thesis submitted in fulfilment of the requirements for the award of the degree of Doctor of Philosophy (Computer Science)

7 I I, BORANG PENGESAHAN STATUS TESIS* SESI PENGAnAN: 2012 I Saya MOHD FARID BIN MOHD YUSOF (B )

AN IMPROVED PACKET FORWARDING APPROACH FOR SOURCE LOCATION PRIVACY IN WIRELESS SENSORS NETWORK MOHAMMAD ALI NASSIRI ABRISHAMCHI

Prepared by: Assoc. Prof. Dr Bahaman Abu Samah Department of Professional Development and Continuing Education Faculty of Educational Studies

PROTOTYPE OF POWER LINE INTERFACE SOCKET USING EMBEDDED CONTROLLER FOR DATA ACQUISITION AND CONTROL. LAI CHING HUAT

BORANG PANGESAHAII STATUS TESIS

UPGRADE FMS200: SHAFT SUPPLY MODULE THOUGH HUMAN MACHINE INTERFACE LEE HO CHUNG

PANDUAN PENGGUNA (SUPPLIER) MAINTAIN CERTIFICATES/SUPPLIER DETAILS SUPPLIER RELATIONSHIP MANAGEMENT SUPPLY CHAIN MANAGEMENT SYSTEM (SCMS)

CLOUD COMPUTING ADOPTION IN BANKING SYSTEM (UTM) IN TERMS OF CUSTOMERS PERSPECTIVES SHAHLA ASADI

PERFORMANCE ANALYSIS OF VIDEO TRANSMISSION OVER IEEE ARCHITECTURE NOOR HURUL-AIN BINTI MOHAMAD

IMPLEMENTATION OF UNMANNED AERIAL VEHICLE MOVING OBJECT DETECTION ALGORITHM ON INTEL ATOM EMBEDDED SYSTEM

HARDWARE/SOFTWARE SYSTEM-ON-CHIP CO-VERIFICATION PLATFORM BASED ON LOGIC-BASED ENVIRONMENT FOR APPLICATION PROGRAMMING INTERFACING TEO HONG YAP

Laporan Aktiviti Pusat Internet 1 Malaysia Kg. Kuala Sungga

: IJAZAH SARJANA MUDA SAINS (SAINS KOMPUTER) : FALKULTI SAINS KOMPUTER DAN SISTEM MAKLUMAT

SESSION BASED ACTIVITY MONITORING APPLICATION FOR ANDROID TAN LEIK HO

ONTOLOGY-BASED SEMANTIC HETEROGENEOUS DATA INTEGRATION FRAMEWORK FOR LEARNING ENVIRONMENT

Manual Pengguna. PCN Online Service Fulfillment System

TEKNOLOGI, GADJET & KEIBUBAPAAN

Disediakan oleh: Mohammad Hazmin Bin Mohamed Azri

PANDUAN PENGGUNA (PENTADBIR SYSTEM/SYSTEM ADMINISTRATOR) (INFOTECH, BPPF DAN POLIS

THE DEVELOPMENT OF MODULAR PRODUCT DESIGN: FOLDABLE CHAIR

EDUCATION PATH SYSTEM MOHD ZULHAFIZ BIN HUSSIN

SISTEM KESELAMATAN PENGHANTARAN FAIL MENGGUNAKAN TEKNIK KRIPTOGRAFI DAN STEGANOGRAFI SATHIAPRIYA A/P RAMIAH

UNIVERSITI SAINS MALAYSIA. CPT211-CPM313 Programming Language Concepts & Paradigm [Konsep & Paradigma Bahasa Pengaturcaraan]

FUZZY NEURAL NETWORKS WITH GENETIC ALGORITHM-BASED LEARNING METHOD M. REZA MASHINCHI UNIVERSITI TEKNOLOGI MALAYSIA

PREDICTION OF SURFACE ROUGHNESS IN TURNING OPERATION OF LOW CARBON STEEL AISI 1018 FAKHRUR RAZI BIN BAHRIN UNIVERSITI MALAYSIA PAHANG

AUTO SILENT MODE FOR ANDROID SMARTPHONES MUHAMMAD AZLAN SHAHARIMAN BIN AHMAD

DEVELOPMENT OF HOME ENERGY MANAGEMENT SYSTEM (HEMS) CHEA MENG HUAT UNIVERSITI TEKNIKAL MALAYSIA MELAKA


BORANG PENGESAHAN STATUS TESIS*

SISTEM PENEMPAHAN PRODUK AVON HAFIZZAH BINTI HASSAN

UNIVERSITI SAINS MALAYSIA. CPT344 Computer Vision & Image Processing [Penglihatan Komputer & Pemprosesan Imej]

AUTOMATIC APPLICATION PROGRAMMING INTERFACE FOR MULTI HOP WIRELESS FIDELITY WIRELESS SENSOR NETWORK

SISTEM PENGURUSAN DAN PENEMPAHAN KELAS MEMANDU BERASASKAN WEB DAN SISTEM PESANAN RINGKAS NURUL AIN BINTI ARIFFIN

SISTEM PEMERHATIAN SMARTTRACK BAGI TELEFON GPS DAN KEKOTAK PENJEJAKAN YEE JIA WEN UNIVERSITI TEKNOLOGI MALAYSIA

INSTRUCTION: This section consists of TWO (2) short answer and structured essay questions. Answer ALL questions.

UNIVERSITI SAINS MALAYSIA. CST232 Operating Systems [Sistem Pengendalian]

MULTIMEDIA COLLEGE JALAN GURNEY KIRI KUALA LUMPUR

INSTRUCTION: This section consists of TWO (2)short answers and TWO (2) structured essays. Answer ALL questions.

APLIKASI MUDAH ALIH JOMDAFTAR

Modul Asas JavaServer Pages

1. Akses untuk koperasi adalah melalui

EEE 428 SISTEM KOMPUTER

SMART PARKING SYSTEM USING LABVIEW MUHAMMAD NAZIR BIN MAT ISA

ANALISA PERPINDAHAN DATA MODEL SURFACE DI ANTARA PLATFOM CAD YANG BERBEZA ASFAEZUDDIN BIN ZAKARIA UNIVERSITI TEKNIKAL MALAYSIA MELAKA

UNIVERSITI TEKNIKAL MALAYSIA MELAKA

ZIGBEE-BASED SMART HOME SYSTEM NURUL ILMI BINTI OMAR

PANDUAN PENGGUNA (PENSYARAH)

REMOVING AL-QURAN ILLUMINATION AMIRUL RAMZANI BIN RADZID UNIVERSITI TEKNIKAL MALAYSIA MELAKA

SISTEM E-RELOAD SOLEHA BINTI SALLEH

UNIVERSITI TEKNIKAL MALAYSIA MELAKA OPTIMIZATION OF MEASUREMENT PARAMETERS IN NON- CONTACT MEASURING SYSTEM

Transcription:

PELANGGAN E-MEL BERASASKAN WEB SERVICES-JAVA SERTA PENAPISAN SPAM LEE BOON YAU Ijazah Sarjana Muda Sains Komputer Fakulti Sains Komputer dan Sistem Maklumat MAC 2005

ii Penilai 1 En. Saiful Penilai 2 PM Dr Shamsul MAC 2005

PSZ 19:16 (Pind. 1/97) iii UNIVERSITI TEKNOLOGI MALAYSIA BORANG PENGESAHAN STATUS TESIS JUDUL: SISTEM PENGURUSAN PENCETAKAN PELAJAR FSKSM,UTM MENGGUNAKAN KAD PINTAR SESI PENGAJIAN: 2004/2005 Saya LEE BOON YAU (HURUF BESAR) mengaku membenarkan tesis (PSM/Sarjana/Doktor Falsafah)* ini disimpan di Perpustakaan Universiti Teknologi Malaysia dengan syarat-syarat kegunaan seperti berikut: 1. Tesis adalah hakmilik Universiti Teknologi Malaysia 2. Perpustakaan Universiti Teknologi Malaysia dibenarkan membuat salinan untuk tujuan pengajian sahaja. 3. Perpustakaan dibenarkan membuat salinan tesis ini sebagai bahan pertukaran antara institusi pengajian tinggi. 4. **Sila tandakan ( ) SULIT TERHAD (Mengandungi maklumat yang berdarjah keselamatan atau kepentingan Malaysia seperti yang termaktub di dalam AKTA RAHSIA RASMI 1972) (Mengandungi maklumat TERHAD yang telah ditentukan oleh organisasi/ badan di mana penyelidikan dijalankan) TIDAK TERHAD Disahkan oleh (TANDATANGAN PENULIS) Alamat Tetap: 206, Jalan Seremban 73000 Tampin, Negeri Sembilan (TANDATANGAN PENYELIA) Dr. Kamalrulnizam bin abu bakar Nama Penyelia Tarikh: 1 FEBRUARI 2005 Tarikh: CATATAN: * Potong yang tidak berkenaan. ** Jika tesis ini SULIT atau TERHAD, sila lampirkan surat daripada pihak berkuasa/organisasi berkenaan dengan menyatakan sekali sebab dan tempoh tesis ini perlu dikelaskan sebagai SULIT atau TERHAD Tesis dimaksudkan sebagai tesis bagi Ijazah Doktor Falsafah dan Sarjana secara penyelidikan, atau disertai bagi pengajian secara kursus dan penyelidikan, atau Laporan Projek Sarjana Muda (PSM).

iv Saya akui bahawa telah membaca karya ini dan pada pandangan saya karya ini adalah memadai dari segi skop dan kualiti untuk penganugerahan Ijazah Sarjana Muda Sains Komputer Tandatangan : Nama Penulis : DR. KAMALRULNIZAM BIN ABU BAKAR Tarikh :

v Saya akui karya ini adalah hasil kerja saya sendiri kecuali nukilan dan ringkasan yang tiap-tiap satunya telah saya jelaskan sumbernya. Tandatangan : Nama Penulis : LEE BOON YAU Tarikh :

vi Untuk ibu, ayah dan keluarga tersayang yang sentiasa menemai dan mendoakan kejayaan ku Terima kasih di atas didikan, kasih sayang dan sokongan yang diberikan selama ini.

vii PENGHARGAAN Dalam halaman ringkas ini, saya ingin merakamkan penghargaan ikhlas kepada semua pihak yang memberi bantuan, sokongan dan bimbingan kepada saya sepanjang tempoh ini. Terlebih dahulu, saya inign mengucapkan jutaan terima kasih kepada penyelia saya, Dr. Kamalrulnizam yang telah memberi banyak bimbingan dan bantuan kepada saya dalam projek ini. Sekalung budi dan terima kasih yang tidak terhingga juga ingin diucapkan kepada ahli keluarga saya, terutamanya kepada ibu bapa yang dihormati. Dorongan yang diberi oleh mereka merupakan pemangkin kepada saya dalam usaha menyiapkan projek ini. Akhir sekali, tidak lupa juga ribuan terima kasih kepada rakan-rakan seperjuangan, pensyarah dan semua pihak yang terlibat secara langsung atau tidak dalam menjayakan projek ini. Buat semua terima kasih diucapkan ke atas budi yang kalian curahkan.

viii ABSTRAK E-mel atau mel elektronik merupakan satu alat komunikasi di mana pengguna dapat berkomunikasi dengan pengguna yang lain dengan cara pertukaran e-mel. Walaubagaimanapun pada masa kini, pelanggan e-mel telah dibangunkan dalam formatformat dan pelantar-pelantar yang berbeza di mana ia telah menyukarkan komunikasi di antara satu sama lain. Selain daripada itu, perkembangan e-mel turut membawa kepada pelbagai masalah lain. Salah satu daripada masalah tersebut ialah pengguna e-mel mendapati mereka menerima e-mel yang tidak dikehendaki dengan jumlah yang banyak. Kebanjiran e-mel yang tidak dikehendaki di dalam kotak mel telah berlaku. E-mel sebegini dikenali sebagai e-mail spam. Oleh itu, tujuan projek ini adalah untuk menghasilkan satu pelanggan e-mel yang berasaskan web services serta penapisan e-mel spam yang efisien. Teknologi web services digunakan untuk memudahkan pelanggan e- mel yang mempunyai format yang berbeza dan berbagai pelantar dikendalikan oleh satu pelayan. Di samping itu, satu penapisan e-mel spam yang lebih efisien juga diimplementasikan dalam pelanggan e-mel yang telah dibangunkan untuk menapis e-mel spam dengan kesalahan positif yang sedikit.

ix ABSTRACT E-mail or electronic mail is an efficient and fast communication unit where user can communicate with other user by changing their e-mail. Unfortunately e-mail application has been built on different formats and platform this make communications with each other become more difficult due to the different format and platform. Furthermore, the enhancement of the e-mail has caused many problems, one of the problems is the e-mail client will get a lot of the unwanted e-mails inside the mail box from unknown person. All of these e-mails are called spam mails. Therefore, the main purpose of this project is to build a web services e-mail client with a better spam mail filtering. Web services technology is used to able the applications with different format and different platform to be served more easily by a server. Besides that, a better spam mail filtering will be implemented into the e-mail application so that it can filter the spam mail with less false positives. As a result, the web services e-mail client with better spam mail filtering is built where user can manage their e-mail faster and easier with less spam mail.

x KANDUNGAN BAB PERKARA HALAMAN PENGHARAGAAN ABSTRAK ABSTRACT KANDUNGAN SENARAI JADUAL SENARAI RAJAH SENARAI SINGKATAN SENARAI ISTILAH SENARAI LAMPIRAN ii iii iv v ix x xi xii xiii BAB 1 PENGENALAN 1 1.1 Pengenalan 1 1.2 Latar Belakang Masalah 2 1.3 Matlamat 3 1.4 Objektif Projek 4 1.5 Skop Projek 4 1.6 Justifikasi/Kepentingan 5

xi BAB 2 KAJIAN LITERATUR 6 2.1 Pengenalan 6 2.1.1 Internet Message Access Protocol 4 (IMAP4) 7 2.1.2 Post Office Protocol 3 (POP3) 7 2.1.3 Simple Mail Transfer Protocol (SMTP) 8 2.1.4 Hubungan Antara IMAP dan POP dengan SMTP 9 2.1.5 Struktur Mesej 10 2.1.6 Multipurpose Internet Mail Extensions (MIME) 11 2.1.6.1 Kepala Mesej 11 2.1.6.2 Badan Mesej 12 2.2 Kajian Terhadap Sistem Sedia Ada 13 2.2.1 Pelanggan POP3 Dengan Sistem Penapisan Spam Berasaskan Teknologi Servis Web 13 2.2.1.1 Kelas Regex 13 2.2.1.2 Kelemahan 14 2.2.2 Hotmail 14 2.2.2.1 Keistimewa Tambahan 15 2.2.3 Mel Yahoo 2.2.3.1 Keistimewa Tambahan 16 2.2.4 Analisis Masalah Mengenai Laman Mel Sedia Ada 17 2.3 E-mel Berbentuk Spam 18 2.3.1 Bayesian Filtering 18 2.3.2 Patrick and Lin Filter 19 2.4 Teknologi Yang Digunakan 19 2.4.1 Teknologi World Wide Web (WWW) 20 2.4.1.1 Hypertext Transfer Protocol (HTTP) 20 2.4.1.2 Hypertext Markup Language (HTML) 20 2.4.2 Web Services 21 2.5.2.1 SOAP 21 2.5.2.2 JAXB 22

xii 2.5.2.3 JAXP 22 2.5.2.4 JAX-RPC 23 2.5.2.5 JAXM 23 2.5.2.6 JAXR 23 2.5.2.7 extensible Markup Language (XML) 24 2.4.3 Teknologi Servlet 24 2.4.4 JavaServer Pages (JSP) 25 2.4.5 J2ME 26 2.4.5.1 Seni Bina J2ME 26 2.4.5.2 Konfigurasi Connected Limited Device Configuration (CLDC) 26 2.4.5.3 Profil Mobile Information Device Profile (MIDP) 27 2.4.6 API JavaMail TM 28 2.4.6.1 Session 29 2.4.6.2 Store 29 2.4.6.3 Address 29 2.4.6.4 Message 30 2.4.6.5 Authenticator 30 2.4.6.6 Transport 30 2.4.7 Classifier4J 31 2.4.7.1 Classifier4J.bayesian 31 2.4.7.2 Classifier4J.summariser 32 2.5 Rumusan 32 BAB 3 METODOLOGI PEMBANGUNAN 33 3.1 Metodologi Model Air Terjun 33

xiii 3.1.1 Fasa Perancangan Sistem 34 3.1.2 Fasa Analisis Keperluan 35 3.1.3 Fasa Rekabentuk 36 3.1.4 Fasa Pengkodan dan Pengujian 37 3.1.5 Fasa Operasi dan Penyelenggaraan 37 3.2 Justifikasi Penggunaan Metodologi Model Air Terjun 37 3.3 Keperluan Perkakasan 38 3.4 Keperluan Perisian 39 BAB 4 REKABENTUK AWALAN 41 4.1 Pengenalan 41 4.2 Rekabentuk Senibina Sistem 42 4.3 Rekabentuk Senibina Pelayan Web Services 43 4.4 Rajah Kes Guna 44 4.4.1 Penerangan Aktor 46 4.4.2 Penerangan Kes Guna 47 4.5 Rajah Jujukan 48 4.5.1 Rajah Jujukan Bagi Pendaftaran 49 4.5.2 Rajah Jujukan Bagi Login 49 4.5.3 Rajah Jujukan Bagi LoginPetiMelElektronik 50 4.5.4 Rajah Jujukan Bagi Muat Turun E-mel 50 4.5.5 Rajah Jujukan Bagi Hantar E-mel 51 4.5.6 Rajah Jujukan Bagi Kemaskini Buku Alamat 51 4.5.7 Rajah Jujukan Bagi Kemaskini Buku Alamat E-mel Spam 52 4.5.8 Rajah Jujukan Bagi Penapisan Spam 52

xiv 4.5.9 Rajah Jujukan Bagi Kemaskini Markah Spam 53 4.5.10 Rajah Jujukan Bagi Kemaskini Fail Hitam 53 4.6 Rajah Kelas 54 4.7 Rekabentuk Pangkalan Data 55 4.7.1 Jadual dbuserdetail 55 4.7.2 Jadual dbaddressbook 56 4.7.3 Jadual dbspam 56 4.7.4 Jadual dbblacklist 57 4.8 Rekabentuk Antaramuka 58 4.9 Rekabentuk Modul 59 4.9.1 Modul Pendaftaran 59 4.9.2 Modul Mel 59 4.9.3 Modul Penapisan 60 4.9 Rumusan 60 BAB 5 IMPLEMENTASI DAN PENGUJIAN 61 5.1 Persekitaran Pembangunan 61 5.1.1 Ecplise 61 5.1.2 TextPad 62 5.1.3 Java, JDK 1.4.1 62 5.1.4 Pangkalan Data 63 5.1.5 Pelayan WebLogic 63 5.2 Implementasi 64 5.2.1 Penghantaran E-mel 64 5.2.1.1 Pengesahan SMTP 65 5.2.2 Muat Turun E-mel 66 5.2.3 Penapisan Mel Spam 67

xv 5.2.4 Proses Menambah Fail Lampiran 70 5.2.5 Memuat Turun Fail Lampiran 71 5.2.6 Proses Memanggil Servis 72 5.2.7 Proses Mendapatkan Data dari Pangkalan Data 73 5.3 Data dan Hasil Input/Output 74 5.4 Rumusan/Analisis 77 BAB 6 KESIMPULAN 78 6.1 Pengenalan 78 6.2 Hasil Pencapaian 78 6.3 Kebaikan Sistem 79 6.4 Kelemahan Sistem 80 6.5 Cadangan Pembaikan 80 6.6 Kesimpulan 81 RUJUKAN 82 LAMPIRAN 83

xvi SENARAI JADUAL NO. JADUAL TAJUK HALAMAN 2.1 Arahan-arahan SMTP 8 2.2 Ciri-ciri Am bagi Hotmail 15 2.3 Ciri-ciri Am bagi Mel Yahoo 17 4.1 Keterangan Aktor 46 4.2 Aktiviti-aktiviti yang dilaksanakan oleh kes guna 47 4.3 Jadual dbuserdetail 55 4.4 Jadual dbaddressbook 56 4.5 Jadual dbspam 57 4.6 Jadual dbblacklist 57

xvii SENARAI RAJAH NO. RAJAH TAJUK HALAMAN 2.1 Hubungan antara IMAP dengan SMTP 10 2.2 Hubungan antara POP dengan SMTP 11 2.3 Fungsi kamus yang terdapat di dalam Hotmail 16 3.1 Kitar Hayat Pembangunan Sistem 34 4.1 Rekabentuk senibina sistem 43 4.2 Rekabentuk Senibina Pelayan Web Services 44 4.3 Rajah kes guna use case untuk sistem yang telah dibangunkan 45 4.4 Rajah kelas sistem 54 5.1 Keratan aturcara untuk menghantar e-mel 62 5.2 Keratan aturcara untuk membuat pengesahan 63 5.3 Keratan aturcara untuk memuat turun e-mel 64 5.4 Keratan aturcara untuk menukar format mesej 65 5.5 Keratan aturcara untuk membuat penapisan spam 66 5.6 Keratan aturcara untuk menghapuskan mesej 67 5.7 Keratan aturcara untuk menambah fail lampiran 68 5.8 Keratan aturcara untuk memuat turun fail lampiran 68 5.9 Keratan aturcara untuk memanggil servis 70 5.10 Keratan aturcara untuk menghubung dengan pangkalan data 71 5.11 Keratan aturcara untuk mendapatkan alamat dari jadual buku alamat 72 5.12 Input pengujian 1 72 5.13 Output pengujian 1 73

xviii 5.14 Input pengujian 2 73 5.15 Output gagal bagi pengujian 2 74

xix SENARAI SINGKATAN IMAP - Internet Message Access Protocol POP - Post Office Protocol SMTP - Simple Mail Transfer Protocol MIME - Multipurpose Internet Mail Extensions WWW - World Wide Web HTTP - Hypertext Transfer Protocol SOAP - Simple Object Access Protocol JAXB - Java Architecture for XML Binding JAXP - Java API for XML Processing JAX-RPC - Java API for XML-base RPC JAXM - Java API for XML Messaging JAXR - Java API for XML Registries HTML - Hypertext Markup Language XML - extensible Markup Language JSP - JavaServer Pages J2ME - Java 2 Micro Edition CLDC - Connected Limited Device Configuration JVM - Java Virtual Machine MIDP - Mobile Information Device Profile UML - Unified Modeling Language

xx SENARAI ISTILAH Bahasa Melayu Pelantar E-mel Peranti Telefon Pelanggan Pelayan Kepala Badan Aktor Rajah Jujukan Rajah Kelas Kata Laluan Penapisan Lampiran Talian Tutup Muat Turun Waspada Bahasa Inggeris Platform E-mail Telephone Device Client Server Head Body Actor Sequence Diagram Class Diagram Password Filtering Attachment Offline Download Alert

xxi SENARAI LAMPIRAN LAMPIRAN TAJUK HALAMAN A Carta Gantt 81 B Senarai Rajah Jujukan 84 C Pemasangan Perisian 92 D Manual Pengguna 95

BAB 1 PENGENALAN 1.1 Pengenalan E-mel atau mel elektronik merupakan satu alat komunikasi di mana pengguna dapat berkomunikasi dengan pengguna yang lain dengan cara menghantar e-mel dan menerima e-mel. Sebagai contoh, pengguna A boleh menghantar mesej-mesej dan fail-fail melalui e-mel kepada pengguna B. Kemudian pengguna A boleh menerima mesej-mesej dan fail-fail melalui e-mel yang dihantar oleh pengguna B. Tambahan pula, ia juga membenarkan komunikasi di antara satu atau ramai pengguna pada satusatu masa. Selain itu, e-mel membenarkan kita menghantar bukan sahaja mesejmesej biasa tetapi maklumat-maklumat lain seperti gambar-gambar atau fail-fail data. Selain daripada itu, e-mel boleh dihantar ke mana-mana sahaja dengan kos yang rendah. E-mel juga boleh dicapai di mana-mana sahaja asalkan ada sambungan kepada Internet. Oleh itu, e-mel merupakan satu alat komunikasi yang efisien dan pantas. Ia juga menyokong format mesej atau pelantar yang pelbagai di mana ia telah meningkatkan permintaan untuk mencapainya.

2 Walaubagaimanapun, pada masa kini, pelanggan e-mel yang dibangunkan mempunyai format yang berbeza, ia telah menyukarkan komunikasi antara satu sama lain. Oleh itu, satu teknologi web services dibangunkan untuk memperbaiki masalah ini. Teknologi web services merupakan teknologi yang memudahkan aplikasi yang mempunyai format yang berbeza dikendalikan oleh satu pelayan. Ia membenarkan pengguna yang menggunakan teknologi ini memanggil objek atau servis yang berada di dalam pelayan yang lain, walaupun senibina sistem-sistem dan pelayan-pelayan tersebut terdiri daripada perkakasan dan perisian yang berlainan. Selain daripada itu, perkembangan e-mel turut membawa kepada pelbagai masalah. Pengguna mendapati mereka menerima e-mel yang tidak dikehendaki dengan jumlah yang begitu banyak. E-mel sebegini dikenali sebagai e-mail spam. Kebanjiran e-mel yang tidak dikehendaki di dalam kotak mel pengguna telah mewujudkan satu keperluan untuk mengadakan satu penapisan e-mel yang berbentuk spam di dalam aplikasi e-mel Dengan mengambil kira teknologi, aplikasi sokongan dan masalah yang telah dibincangkan di atas, projek ini dibangunkan dengan memfokuskan pada aplikasi e- mel berasaskan web wervices berserta dengan kemudahan tambahan penapisan e-mel berbentuk spam. 1.2 Latar Belakang Masalah Berikutan dengan kemajuan dan perkembangan teknologi, keperluan pengguna untuk menerima maklumat turut bertambah. Oleh itu, pengguna memerlukan satu pelanggan e-mel yang dapat menerima dan menghantar maklumat kepada pengguna yang lain dengan cara penukaran e-mel.

3 Tetapi pada masa kini, pelanggan e-mel telah dibangunkan dalam formatformat yang berbeza, dengan format-format yang berbeza ini telah menyukarkan komunikasi antara satu sama lain. Oleh itu, teknologi web services digunakan untuk memperbaiki masalah ini. Selain daripada itu, perkembangan e-mel turut membawa kepada pelbagai masalah. Salah satu masalah ialah pengguna e-mel mendapati mereka menerima e- mel yang tidak dikehendaki dengan jumlah yang banyak. E-mel sebegini dikenali sebagai e-mail spam. E-mel spam selalunya mengandungi iklan komersil atau perkhidmatan yang menyalahi undang-undang. Kehadiran e-mel spam telah membebankan pengguna dan telah menambahkan kos kepada pengguna. Walaupun terdapat banyak penapisan e-mel spam yang cekap di pasaran sekarang namun, disebabkan e-mel spam yang bertambah banyak, e-mel spam dapat terlepas dari kebanyakan penapis spam yang ada. Contoh penapisan spam yang ada ialah penapisan e-mel spam yang menggunakan teknik Pantel dan Lin. Penapisan e- mel spam ini, cuma dapat menangkap e-mel spam sebanyak 92% dengan kesalahan positif 1.16%[1] (kesalahan positif bermakna kesalahan yang dilakukan, di mana ia telah menapis e-mel yang bukan e-mel spam). 1.3 Matlamat Menghasilkan satu pelanggan E-Mel berasaskan teknologi web services serta penapisan e-mel spam yang dapat dikendalikan oleh satu pelayan, walaupun pelanggan e-mel mempunyai format yang berbeza dan mampu menapis e-mel yang berbentuk spam

4 1.4 Objektif Projek i. Mengkaji pelanggan E-Mel yang telah dibangunkan [7]. ii. Merekabentuk senibina sistem, pangkalan data yang diperlukan dan antaramuka pelanggan e-mel. iii. Membangunkan satu pelanggan e-mel yang mempunyai fungsi penapisan e-mel berbentuk spam menggunakan teknik Bayesian Filtering. 1.5 Skop Projek i. Membangunkan aplikasi e-mel menggunakan bahasa JAVA ii. Membangunkan aplikasi e-mel yang membolehkan pengguna membaca, menghantar dan menghapus e-mel. iii. Mengimplementasikan penapisan e-mel spam menggunakan teknik Bayesian Filtering ke dalam aplikasi. iv. Membangunkan satu pelayan berasaskan web services yang menyediakan fungsi-fungsi bagi aplikasi e-mel yang hendak dibangunkan. v. Membangunkan aplikasi yang boleh menerima dan menghantar e-mel melalui telefon mudah alih dengan menggunakan J2ME Wireless Toolkit 2.0 vi. Mengaplikasikan keselamatan minima dengan merujuk akaun pengguna dan katalaluan sebagai kawalan capaian. vii. Membangunkan satu aplikasi e-mel yang boleh memuat turun e-mel dari pelayan IMAP (Internet Message Access Protocol)

5 1.6 Justifikasi/Kepentingan Sistem yang dibangunkan adalah bertujuan untuk membantu pengguna menghantar dan menerima mesej-mesej dari satu tempat ke tempat yang lain. Dengan menggunakan sistem ini pengguna boleh menggunakan pelanggan e-mel yang mempunyai format yang berbeza untuk menghantar dan menerima mesej. Teknologi web services ini dapat memudahkan pelanggan yang mempunyai format yang berbeza dikendalikan oleh satu pelayan. Walaupun senibina sistem-sistem dan pelayan-pelayan tersebut terdiri daripada perkakasan dan perisian yang berlainan, pengguna hanya perlu memanggil objek dan servis kepada pelayan tersebut untuk mendapatkan output tertentu. Tambahan pula, dengan adanya sistem ini, e-mel yang berbentuk spam dapat ditapis dengan lebih berkesan.

BAB 2 KAJIAN LITERATUR 2.1 Pengenalan E-mel ialah singkatan bagi mel elektronik, iaitu penghantaran mesej-mesej merentas rangkaian-rangkaian komunikasi. Mesej tersebut boleh jadi nota-nota yang ditaip daripada papan kekunci atau fail-fail elektronik yang disimpan dalam cakera. Kebanyakan kerangka utama, komputer mini dan rangkaian komputer mempunyai sistem e-mel. Tambahan pula, syarikat-syarikat yang menggunakan komputer sepenuhnya, telah menggunakan e-mel secara meluas kerana ciri-ciri e-mel yang pantas, fleksibel dan boleh dipercayai. E-mel telah wujud selama lebih dua dekad. Sistem e-mel yang pertama terdiri daripada protokol-protokol pemindahan fail, dan baris pertama setiap mesej mengandungi alamat-alamat penerima. Protokol-protokol seperti Post Office Protocol (POP) dan Internet Message Access Protocol (IMAP) digunakan untuk mencapai e-mel manakala protokol Simple Mail Transfer Protocol (SMTP) digunakan untuk menghantar mesej-mesej e-mel antara satu hos kepada satu hos yang lain.

7 2.1.1 Internet Message Access Protocol 4 (IMAP4) Internet Message Access Protocol atau dahulunya dikenali sebagai Interactive Mail Access Protocol mewakili mekanisme komunikasi untuk pelanggan-pelanggan mel berinteraksi dengan pelayan-pelayan mel, dan seterusnya membolehkan pengguna memanipulasikan kotak mel. IMAP memberi tanggapan kepada pelanggan bahawa pelayan adalah gudang simpanan mel yang utama dan mesej-mesej sentiasa disimpan pada pelayan. Oleh itu, pelanggan boleh mengemukakan arahan-arahan untuk memuat turun atau memadam mesej. Pelanggan juga boleh mencapai dan menetapkan maklumat keadaan mesej manakala pelayan pula akan sentiasa mengemaskinikan kotak mel [3]. 2.1.2 Post Office Protocol 3 (POP3) Post Office Protocol adalah protokol yang digunakan untuk mencapai e-mel yang diterima. POP adalah peti surat yang menyimpan e-mel pengguna. Program pelanggan e-mel diperlukan untuk berhubung dan memuat turun e-mel dari pelayan POP. Pelanggan e-mel yang terdapat di pasaran adalah seperti Netscape Mail, Outlook Express dan Eudora. Apabila pengguna menyemak e-mel, program ini akan berhubung dengan pelayan POP. Kemudian, pelayan ini memerlukan identiti pengguna dan kata laluan sebelum sesuatu akaun dapat dicapai [3].

8 2.1.3 Simple Mail Transfer Protocol (SMTP) SMTP ialah protokol bagi menghantar mesej-mesej e-mel antara satu hos kepada satu hos yang lain. Kebanyakan sistem e-mel yang menghantar mel merentas internet menggunakan SMTP untuk menghantar mesej daripada satu pelayan ke pelayan yang lain. Mesej-mesej tersebut boleh diperolehi oleh pengguna melalui pelanggan e-mel yang menggunakan IMAP dan POP. Tambahan pula, SMTP secara amnya digunakan untuk menghantar mesej dari pelanggan mel kepada pelayan mel. Oleh itu, pengguna perlu menentukan pelayan IMAP apabila pengguna melakukan konfigurasi terhadap aplikasi e-mel mereka. Jadual 2.1 menunjukkan arahan-arahan yang diguna untuk melakukan operasi-operasi. Jadual 2.1 Arahan-arahan SMTP HELLO Memperkenalkan diri kepada pelayan MAIL FROM: Alamat e-mel penghantar. Dikenali sebagai SMTP penghantar. RCPT TO: Alamat e-mel penerima. Jika penerima lebih daripada satu, arahan ini akan diulangi untuk setiap penerima. DATA Arahan ini memberitahu pelayan bahawa apa yang dihantar selepas ini adalah bahagian kepala dan badan e-mel. VRFY Arahan ini akan mengembalikan alamat e- mel bagi seseorang pengguna yang disertakan jika dijumpai EXPN Arahan ini akan mengembalikan data-data semua ahli bagi sesuatu senarai QUIT Tamatkan komunikasi dengan pelayan

9 2.1.4 Hubungan Antara IMAP dan POP dengan SMTP Pengguna menulis e-mel dengan menggunakan fungsi-fungsi yang disediakan oleh pelanggan e-mel. Pelanggan e-mel akan menyampaikan mesej tersebut kepada pelayan e-mel SMTP. Merujuk kepada rajah 2.1, pelanggan e-mel akan menggunakan port 25 pada pelayan SMTP untuk menghantar mesej menggunakan protokol SMTP. Pelanggan penerima akan menggunakan port 143 pada pelayan IMAP untuk mendapatkan mesej dari IMAP bagi membolehkan penerima membaca e-mel yang diterima. Rajah 2.2 merupakan cara yang biasa digunakan untuk membaca e-mel dengan menggunakan POP pada port 110. IMAP Pelayan E-mel UTM Port 143 Fail Teks Baris Gilir SMTP Port 25 Pelayan e-mel penghantar menghubungi pelayan penerima Pelayan E-mel Hotmail IMAP Port 143 Baris Gilir Fail Teks SMTP Port 25 Rajah 2.1 Hubungan antara IMAP dengan SMTP

10 POP Pelayan E-mel UTM Port 110 Baris Gilir Fail Teks SMTP Port 25 Pelayan e-mel penghantar menghubungi pelayan penerima Pelayan E-mel Hotmail Port 110 Baris Gilir POP Fail Teks SMTP Port 25 Rajah 2.2 Hubungan antara POP dengan SMTP 2.1.5 Struktur Mesej Di dalam sistem e-mel pada masa kini terdapat dua jenis struktur mesej yang sering digunakan. Jenis yang pertama adalah struktur mesej yang asal iaitu RFC 822 yang diwujudkan untuk menghantar data dalam bentuk ASCII. Dengan penambahan di dalam penggunaan e-mel, e-mel digunakan untuk menghantar mesej-mesej ringkas. Keperluan pengguna untuk menghantar mesej yang lebih komplek yang

11 mengandungi beberapa badan e-mel telah menghasilkan satu protocol baru yang dikenali sebagai Multipurpose Internet Mail Extensions (MIME). 2.1.6 Multipurpose Internet Mail Extensions (MIME) MIME merupakan satu protokol yang membolehkan mesej yang lebih komplek dihantar. MIME membahagikan mesej kepada dua bahagian iaitu badan dan kepala. Kepala mesej mengandungi maklumat-maklumat seperti asal e-mel, penghantar dan penerima. Bahagian badan mesej mengandungi isi kandungan e-mel tersebut. MIME ditakrifkan dalam RFC 2045-2049, terutamanya RFC 2045 dan RFC 2046 yang menerangkan struktur badan tersebut. Kepala Content-Type boleh digunakan untuk menerangkan set aksara yang tertentu atau jenis data bukan teks. Sebagai contoh: Content-Type: text/plain; charset=us-ascii Menunjukkan bahawa mesej tersebut mengandungi teks yang jelas di dalam set aksara US-ASCII 2.1.6.1 Kepala Mesej Kepala Mesej juga dikenali sebagai header. Bahagian kepala mesej ini mengandungi maklumat-maklumat yang berkaitan dengan mesej. Bagi setiap medan, terdapat nama medan diikuti dengan : dan nilai bagi medan tersebut. Setiap medan akan diakhiri dengan CRLF.

12 2.1.6.2 Badan Mesej MIME menyediakan senibina beberapa bahagian badan mesej yang digunakan oleh SMTP untuk menghantar bahagian teks biasa dan bahagian binari di dalam mesej yang sama. Bahagian-bahagian berlainan ini dibahagikan mengikut sempadan yang diwakili oleh satu rentetan aksara. Rentetan aksara ini unik untuk setiap mesej dan berada pada barisnya sendiri dan dimulai dengan dua tanda -- dan diakhir dengan penanda baris. Jenis-jenis badan mesej yang disokong oleh MIME: i. TEXT: Menyediakan data mesej ringkas seperti ASCII dan boleh dihantar dengan menggunakan 7bit ASCII ii. MULTIPAT: Bahagian badan ini menyokong beberapa bahagian badan mesej. Bahagian badan mesej ini dipecahkan kepada beberapa bahagian iaitu: a. MIXED: bahagian-bahagian yang berbeza b. ALTERNATIVE: bahagian yang sama tetapi dalam bentuk pengkodan yang berbeza c. PARALLEL: sama seperti MIXED tetapi ditunjukkan pada masa yang sama. Contoh: suara selari. d. DIGEST: mesej yang dipecahkan kepada beberapa bahagian. e. MESSAGE: bahagian badan mesej yang mengandungi mesej lain seperti mesej yang dipanjangkan. f. IMAGE: bahagian badan mesej yang mengandungi imej g. AUDIO: bahagian badan mesej yang mengandungi bunyi atau muzik. h. APPLICATION: bahagian badan aplikasi yang dihasilkan oleh program aplikasi.

13 2.2 Kajian Terhadap Sistem Sedia Ada Kajian terhadap sistem yang sedia ada dilakukan terhadap pelanggan mel yang telah dibangunkan oleh Mohd Hanif bin Ibrahim pada sesi pengajian 2002/2003 dan laman mel (web mail) yang biasa dijumpai iaitu mel Hotmail dan mel Yahoo. 2.2.1 Pelanggan POP3 Dengan Sistem Penapisan Spam Berasaskan Teknologi Servis Web Pelanggan E-Mel ini telah dibangunkan oleh Mohd Hanif bin Ibrahim pada sesi pengajian 2002/2003. Pelanggan e-mel ini dibangunkan dengan menggunakan teknologi WebServices dan teknologi.net. Ia juga menggunakan kelas Regex untuk membuat penapisan e-mel berbentuk spam. 2.2.1.1 Kelas Regex Regex merupakan kelas implementasi regular expression di dalam rangka kerja.net. Kelas ini digunakan untuk membuat pengesanan corak perkataan. Dengan mengimplementasikan kelas ini ke dalam proses pengesanan spam, pelbagai corak perkataan boleh dikesan. Contoh corak perkataan adalah sales@ dan order now!, apabila corak perkataan ini dikesan pada badan mesej atau subjek mesej, mel ini akan dikenali sebagai mel spam.

14 2.2.1.2 Kelemahan Berikut adalah kelemahan-kelemahan yang terdapat di dalam sistem yang telah dibangunkan oleh Mohd Hanif bin Ibrahim. i. Keupayaan penghantaran e-mel tidak boleh dilakukan melalui pelayan SMTP dimana ia memerlukan pengesahan terlebih dahulu. ii. Implementasi algoritma-algoritma di dalam proses penapisan kebanyakkannya tidak optimum dan juga menjejaskan prestasi pelayan. iii. Web services perlu dipanggil beberapa kali bagi menjalankan fungsi-fungsi seperti pemindahan beberapa e-mel pada satu-satu masa. Ini menjejaskan prestasi system. iv. Sistem yang telah dibangunkan mengimplementasikan keselamtan yang minimum. 2.2.2 Hotmail Hotmail merupakan salah satu e-mel yang berasaskan web. Ciri-ciri am bagi hotmail akan ditujukkan dalam jadual 2.2. Jadual 2.2 Ciri-ciri Am bagi Hotmail Kapasiti 2 MB Buku Alamat Ada Penyemak POP mel Ada, sebanyak 4 akaun Penghantaran Secara Automatik Tiada Penapisan Spam Ada

15 2.2.2.1 Keistimewaan Tambahan Dalam halaman penulisan mesej, Hotmail mempunyai kamus pencarian dan penyemakan perkataan. Rajah 2.3 menunjukkan fungsi kamus yang terdapat di dalam Hotmail. Ia juga membenarkan pengguna menghias mesej-mesej dengan gaya yang berbeza. Di samping itu, ia juga membenarkan pengguna mengimbaskan fail lampiran menggunakan McAfee VirusScan. Tambahan pula, pengguna boleh menyemak POP mel dari ISP pengguna. Selain daripada itu, pengguna juga boleh menggunakan Outlook Express untuk menghantar dan memuat turun mesej Hotmail. Rajah 2.3 Fungsi kamus yang terdapat di dalam Hotmail

16 2.2.3 Mel Yahoo Mel Yahoo juga merupakan satu mel yang berasaskan web yang popular dan digemari oleh ramai pengguna. Ciri-ciri am bagi mel Yahoo adalah ditunjukkan dalam jadual 2.3. Jadual 2.3 Ciri-ciri Am bagi Mel Yahoo Kapasiti 6 MB (boleh ditambahkan sehingga 20 MB dengan memberi bayaran setiap tahun) Buku Alamat Ada Penyemak POP mel Ada, sebanyak 3 akaun Penghantaran Secara Automatik Tiada Penapisan Spam Ada 2.2.3.1 Keistimewaan Tambahan Ia terdapat satu maklum balas yang dikenali sebagai Vacation Autoresponders yang boleh memberitahu kepada semua orang bahawa pengguna sedang bercuti. Selain itu, mel Yahoo juga membenarkan pengguna mengsetkan satu pengingatan yang dipanggil sebagai Reminder. Pengguna boleh setkan sebarang kejadian dengan menggunakan Reminder di mel Yahoo dan Yahoo Messenger. Mel Yahoo juga dapat integrasi dengan Yahoo Calender.

17 2.2.4 Analisis Masalah Mengenai Laman Mel Sedia Ada Walaupun kedua-dua aplikasi mel yang dibincangkan di atas merupakan e- mel yang popular digunakan. Kedua-dua aplikasi mel tersebut juga mempunyai kelemahannya sendiri. Kelemahan Hotmail ialah terlalu banyak antaramuka. Ia akan mengambil masa yang lebih panjang kerana ia perlu disambung kepada MSN terlebih dahulu sebelum pengguna dapat mencapai ke dalam peti surat Hotmail. Berbanding dengan Hotmail, mel Yahoo mempunyai kekuatannya dimana pengguna boleh mengurus e-mel dengan lebih cepat dan mudah. Jika pengguna telah menggunakan My Yahoo sebagai pemilihan e-mel utama, pengguna boleh menerima mesej e-mel daripada Yahoo Companion. Mel Yahoo juga terdapat kelemahannya, pengguna boleh menerima mel Yahoo di akaun POP dengan menggunakan Outlook Express dan Eudora. Walau bagaimanapun, pengguna perlu mendaftarkan diri sebagai Yahoo Delivers dan juga perlu menerima e-mel sasaran (dimana seakan-akan e-mel spam yang sah) Setelah perbincangan tentang kelemahan dan kekuatan sistem yang sedia ada, projek yang dibangunkan telah menumpukan beberapa perkara: i. Sistem yang dihasilkan mempunyai antaramuka yang sedikit tetapi sempurna dan mudah diuruskan. ii. Ia bukan sahaja boleh menyemak POP mel, ia juga boleh menyemak IMAP mel. iii. Implementasi teori Bayesian Filtering di dalam proses penapisan. iv. Penghantaran e-mel dapat dilakukan melalui pelayan SMTP yang memerlukan pengesahan terlebih dahulu.

18 2.3 E-mel Berbentuk Spam E-mel berbentuk spam adalah e-mel yang dihantar kepada penerima di mana penerima tidak memilih untuk menerima e-mel tersebut. E-mel spam selalunya dihantar dalam jumlah yang banyak kepada ramai penerima pada sesuatu masa. E- mel spam hanya memerlukan kos yang rendah utnuk dihantar dan kebanyakkanya dibayar oleh pengendali rangkaian atau penerima. E-mel berbentuk spam selalunya mengandungi iklan komersil atau perkhidmatan yang menyalahi undang-undang. Kehadiran e-mel spam telah membebankan pengguna dan telah menambahkan kos kepada pengguna. Senarai e-mel pengguna selalunya diperolehi dengan mengimbas usenet, mencuri senarai e-mel interner, atau carian melalui enjin pencari web untuk mendapatkan alamat e-mel. E-mel selalunya membebankan pengguna untuk diterima. Kebanyakkan pengguna yang menggunakan talian telefon untuk mencapai internet dikenakan caj semasa menerima dan menghantar e-mel. Selain daripada itu, spam juga menambahkan kos operasi ISP atau pengendali servis talian untuk menghantar spam dan kos ini seterusnya perlu dibayar oleh pengguna. 2.3.1 Bayesian Filtering Pada pasaran kini, disebabkan e-mel yang berbentuk spam bertambah banyak, ia dapat menepaskan dirinya daripada kebanyakan penapisan e-mel spam yang cekap. Teknik yang biasa digunakan ialah teknik penapisan Pantel dan Lin tetapi ia cuma dapat menangkap spam sebanyak 92% dengan kesalahan positif 1.16% [1] (kesalahan positif bermakna kesalahan yang dilakukan, di mana ia telah menapis e- mel yang bukan spam e-mel). Oleh itu, perlu ada satu teknik penapisan spam yang lebih cekap untuk diimplementkan ke dalam pelanggan e-mel.

19 Bayesian Filtering merupakan teknik penapisan spam yang baru. Penapisan ini adalah satu subset bagi pengkelasan. Sebelum mengimplementasikannya ke dalam aplikasi e-mel. Ia perlu dilatih dahulu dengan data yang banyak dimana datadata terdiri daripada mel bentuk spam dan mel bukan berbentuk spam. Dengan adanya penapisan spam ini, ia dapat menangkap e-mel berbentuk spam sebanyak 99.5% dengan kesalahan positif 0.03% [1]. 2.3.2 Pantel and Lin Filter Pantel and Lin Filter merupakan satu teknik penapisan e-mel spam yang dihasilkan oleh Patrick Pantel dan Dekang Lin pada tahun 1998. Teknik ini dinyatakan dalam program penapisan spam mereka yang dipanggil sebagai program SpamCop[6]. Teknik ini menganggap satu mesej e-mel sebagai satu set perkataan yang pelbagai. Oleh itu, untuk menentukan e-mel tersebut ialah e-mel spam atau tidak, mesej e-mel tersebut akan dibanding dengan peraturan perkataan (keywordspotting rules) yang telah ditentukan. Akhirnya mereka mendapati bahawa dengan teknik ini, ia dapat menapiskan e-mel spam sebanyak 92% dengan kesalahan positif 1.16% [6]. 2.4 Teknologi Yang Digunakan Dalam membangunkan sistem ini, pelbagai teknologi digunakan bagi melengkapkan sistem ini. Di dalam bahagian ini, teknologi-teknologi ini dihuraikan dan kepentingan di dalam projek ini diterangkan.

20 2.4.1 Teknologi World Wide Web (WWW) WWW ialah satu gedung maklumat yang tersebar ke seluruh dunia dan hubungkan bersama-sama. WWW pada hari ini ialah servis pelanggan-pelayan teragih. Servis yang disediakan adalah diagihkan merentas pelbagai lokasi yang dipanggil laman web. Dalam bahagian ini teknologi-teknologi yang terlibat dikenal pasti. 2.4.1.1 Hypertext Transfer Protocol (HTTP) HTTP merupakan protocol yang digunakan sebagai penghantaran untuk web. HTTP ialah set syarat-syarat bagi penukaran fail-fail (teks, imej grafik, bunyi, video dan fail-fail multimedia yang lain) pada WWW. Konsep penting HTTP termasuklah idea yang fail boleh mengandungi rujukan ke fail lain, yang jika dipilih, akan mendapatkan permintaan pindah tambahan. 2.4.1.2 Hypertext Markup Language (HTML) HTML bermula daripada Standard Generalized Markup Language atau SGML. SGML digunakan utnuk memproses dan menformat dokumen komputer. Namun SGML begitu kompleks. HTML begitu mudah digunakan. Setiap arahan atau markup digunakan untuk menformat teks yang berada di antaranya. Salah satu

21 sifat yang paling penting adalah kebolehan utnuk mencapai dokumen lain dengan mengklik pada sesuatu teks yang dikenali sebagai hiperteks. 2.4.2 Web Services Kewujudkan web services bergantung kepada penerimaan XML dan piawai internet yang lain bagi mewujudkan satu infrastruktur yang menyokong operasi di antara aplikasi yang berlainan di atas platform yang berlainan. Web Service dibina di atas Simple Object Access Protocol atau SOAP. SOAP membenarkan penghantaran data melalui HTTP. SOAP juga membenarkan penghantaran data dan struktur data tersebut dengan mudah melalui HTTP. Fungsi utama web services adalah untuk membenarkan capaian ke atas fungsi di dalam sesuatu objek web services. Ia bergantung kepada XML untuk menghantar dan menerima data melalui HTTP. Pengguna XML membolehkan penghantaran data-data primitive sehingga kepada keseluruhan kelas. Di dalam projek ini, semua fungsi dan logik aplikasi di dalam sistem yang dibangunkan ini telah diimplementasikan di dalam bentuk web services. 2.4.2.1 SOAP SOAP merupakan satu protokol spesifikasi yang menakrifkan satu jalan untuk menghantar data XML. Ia juga ditakrifkan sebagai satu jalan untuk melaksanakan remote procedure calls (RPCs) dengan menggunakan HTTP sebagai penyokong komunikasi protokol.

22 SOAP memerlukan satu pembalut WAN untuk menghantar data. SOAP menghantar data dalam bentuk XML, ia membenarkan pertukaran komponen antara dua lokasi. 2.4.2.2 JAXB Java Architecture for XML Binding atau JAXB membenarkan pembangun menghasilkan kelas Java daripada skema XML. Selain itu, teknologi JAXB menyediakan modul untuk unmarshalling dokumen instance XML kepada kandungan pokok objek Java dan seterusnya marshalling kandungan pokok kepada dokumen XML. Ini akan memudahkan untuk mengikatkan skema XML kepada perwakilan kod Java tanpa mengetahui lebih mengenai XML. 2.4.2.3 JAXP Java API for XML Processing atau JAXP adalah amat mudah untuk memproses data XML dengan menggunakan aplikasi yang dituliskan dalam bahasa aturcara Java. JAXP boleh menghuraikan Simple API for XML Parsing atau SAX dan Document Object Model atau DOM. Oleh itu, pemilihan untuk menghuraikan data kepada satu golongan acara atau membangunkan satu perwakilan struktur pokok boleh dijalankan. Pada versi baru JAXP, ia juga menyokong XML Stylesheet Language Transformations atau XSLT yang membenarkan mengawal persembahan data dan membenarkan untuk menukarkan data kepada dokumen XML yang lain atau format yang lain seperti HTML.

23 2.4.2.4 JAX-RPC RPC yang merujuk kepada servis web merupakan satu koleksi prosedur yang boleh memanggil pelanggan melalui internet. Dalam Web Service, satu aplikasi pelayan mengandungi prosedur yang membenarkan pelanggan untuk memanggilnya. Prosedur tersebut terletak pada bekas pelayan. Bekas pelayan itu boleh dianggap sebagai bekas servlet seperti Tomcat atau bekas web dalam pelayan Java 2 platform, enterprise Edition (J2EE) 2.4.2.5 JAXM Java API for XML Messaging atau JAXM menyediakan satu jalan yang piawai untuk menghantar dokumen XML melalui internet daripada platform Java. Ia adalah berdasarkan SOAP 1.1 dan SOAP yang mengandungi lampiran spesifikasi di mana ia menakrifkan satu rangka asas untuk bertukaran mesej XML. Apabila sesuatu pelayan menghantar satu mesej, mesej itu akan dihantar kepada messaging provider penghantar, seterusnya ke messaging provider penerima dan akhirnya ke penerima. Oleh sebab semua mesej melalui messaging provider, ia boleh menjaga penyelenggaraan mesej seperti menentukan mesej, menyimpan mesej dan memastikan mesej telah dihantar sebelumnya. Messaging provider boleh menghantar semula mesej yang tidak sampai ke destinasi. 2.4.2.6 JAXR Java API for XML Registries (JAXR) menyediakan satu jalan untuk memasukan registries melalui internet. Registries perniagaan menjelaskan seperti elektronik kertas kuning kerana ia mengandungi satu senarai perniagaan dan servis

24 atau barangan perniagaan itu ditawarkan. Perniagaan boleh mendaftarkan diri mereka sendiri dan mereka boleh menghantar bahan untuk dikongsi bersama atau mereka boleh mencari bahan yang telah dihantar oleh perniagaan yang lain. 2.4.2.7 extensible Markup Language (XML) XML adalah subset kepada SGML. XML merupakan teknologi untuk capaian data. XML menyediakan kaedah universal bagi penukaran data di antara organisasi. Struktur XML menjadikannya mudah bagi sesuatu aplikasi untuk bekerja dengan data yang berada setempat atau dari sumber yang berada di tempat lain. XML berkembang dengan cepat untuk menjadi satu piawai dalam penukaran data dalam aplikasi atas talian. XML membenarkan penggunaan tag khas yang menjadikan lebih fleksibel berbanding HTML. Skema XML digunakan untuk mentakrif dokumen XML dan memastikan sesuatu dokumen itu merupakan dokumen XML yang sah untuk digunakan di dalam sesuatu aplikasi. 2.4.3 Teknologi Servlet Servlet merupakan unit-unit kod Java yang kecil yang dapat dilaksanakan dengan cepat pada pelayan sebagai maklum balas untuk permintaan yang dijanakan oleh permintaan pelayar untuk sesuatu laman web. Ini adalah sangat berbeza dengan applet yang mana ia merupakan unit-unit kod Java yang kecil yang dilaksanakan pada pelayar dan biasanya mengambil masa yang lama menunggu pelayar memuat turun applet tersebut. Konsep Java bahagian pelayan adalah amat mudah. Sesuatu aplikasi boleh wujud pada bahagian pelayan, pelanggan atau kedua-duanya. Teknologi servlet ini

25 merupakan teknologi yang dapat membekalkan pembangun web satu mekanisme pembangunan yang bersepadu dan konsisten. Servlet dapat menambah lagi fungsifungsi yang ada pada sesuatu pelayan web. 2.4.4 JavaServer Pages (JSP) Java Server Pages atau JSP dikembangkan daripada teknologi servlet. JSP merupakan satu teknologi berasaskan bahasa pengaturcaraan java dan membenarkan pembangunan laman web dinamik. JSP ini dibangunkan oleh Sun Microsystems untuk membenarkan pembangunan pada bahagian pelayan. Pengaturcara web boleh menghasilkan kandungan yang dinamik dengan menggunakan semula komponen yang sedia ada seperti JavaBeans. Setiap laman JSP akan dikompil menjadi satu servlet yang spesifik. Fungsi servlet tersebut adalah untuk menjana isi kandungan dinamik yang dinyatakan oleh dokumen JSP yang asal. Pelayan mesti menggunakan JSP container seperti Tomcat untuk menghantarkan JSP kepada pengguna. JSP container akan membaca JSP dan menggunakannya sebagai satu templet untuk mencipta dan mengkompil satu servlet. JSP container ini akan membangunkan satu servlet sementara yang akan mencipta sesuatu laman secara dinamik dan dihantar kembali kepada pengguna. Teknologi ini akan digunakan pada bahagian salah satu pelanggan.

26 2.4.5 J2ME J2ME membawa fungsian merentas-pelantar untuk bahasa Java kepada peranti yang lebih kecil, membenarkan peralatan bimbit tanpa wayar untuk berkongsi aplikasi. Dengan J2ME, Sun telah mengadaptasi pelantar Java untuk produk-produk pengguna yang diperbadankan atau yang berdasarkan peranti pengkomputeran yang kecil. 2.4.5.1 Seni Bina J2ME J2ME menggunakan konfigurasi dan profil untuk melazimkan Java Runtime Environment (JRE). Sebagai JRE yang lengkap, J2ME mengandungi: Konfigurasi i. Menentukan JVM yang digunakan ii. Mentakrifkan persekitaran larian-masa sebagai satu set kelas-kelas teras dan mentakrif JVM tertentu yang dilarikan pada jenis peralatan yang tertentu. Profil i. Mentakrifkan tentang menambah kelas-kelas domain-tentu ii. Menambahkan kelas-kelas domain-tentu kepada konfigurasi J2ME untuk menetapkan penggunaan tertentu bagi peralatan-peralatan. 2.4.5.2 Konfigurasi Connected Limited Device Configuration (CLDC) CLDC adalah konfigurasi yang sesuai utnuk peranti-peranti kecil manakala CDC untuk peranti-peranti yang lebih besar. Persekitaran J2ME bolih di konfigurasi

27 secara dinamik untuk menyediakan persekitaran yang diperlukan bagi melarikan aplikasi, tidak kira sama ada perpustakaan berasakan teknologi Java yang diperlukan untuk melarikan aplikasi tersebut wujud pada peranti atau tidak. Pelantar teras menerima kedua-dua aplikasi dan perpustakaan. Konfigurasi dilaksanakan oleh pelayan yang dilarikan pada rangkaian. CLDC mentakrifkan keperluan-keperluan berikut: i. Menyokong bahasa Java sepenuhnya (melainkan untuk sokongan penunjuk apungan, penyudahan dan penangan ralat) ii. Menyokong JVM sepenuhnya. iii. Keselamatan untuk CLDC iv. Menyokong pengantarabangsaan terhad v. Kelas-kelas warisan kesemua kelas yang tidak khusus untuk CLDC haruslah subset kelas-kelas J2SE vi. Kelas-kelas yang dikhususkan utnuk CLDC adalah dalam pakej dan subpakej javax.microedition Sebagai tambahan kepada pakej javax.microedition, CLDC API mengandungi subset bagi pakej java.io, java.lang, dan java.util, CLDC API digunakan untuk menghasilkan lukisan aplikasi. 2.4.5.3 Profil Mobile Information Device Profile (MIDP) Profil mentakrifkan jenis peranti yang disokong. MIDP sebagai contohnya mentakrifkan kelas-kelas bagi telefon bimbit. Ia menambah kelas-kelas domaintentu kepada konfigurasi J2ME untuk mentakrif penggunaan bagi peranti yang sama. Dua profil telah ditakrif untuk J2ME dan dibina di atas CLDC; KJava dan MIDP.

28 Kedua-dua KJava dan MIDP disatukan dengan CLDC dan dengan peranti yang lebih kecil. MIDP ialah profil yang biasa. MIDP mengandungi pakej-pakej (tiga pakej yang terawal adalah pakej CLDC yang teras), termasuk tiga pakej MIDP-tentu: i. java.lang ii. java.io iii. java.util iv. javax.microedition.io v. javax.microedition.lcdui vi. javax.microedition.midlet vii. javax.microedition.rms 2.4.6 API JavaMail TM API JavaMail ialah lanjutan piawai java. Ia menyediakan kaedah yang terhad dan bebas protokol untuk menerima dan menghantar e-mel. JavaMail membenarkan penggunaan pelbagai protokol capaian mesej seperti POP3 dan IMAP dan protokol SMTP untuk penghantaran e-mel. JavaMail berinterasi dengan kandungan mesej menerusi JavaBeans Activation Framework(JAF). Ia menyediakan cara yang seragam untuk menentukan jenis mesej dan memecahkannya. API javamail telah direka untuk menyediakan capaian bebas protocol bagi penerimaan dan penghantaran mesej. Ia direka untuk berinteraksi dengan menggunakan bahasa-bahasa yang berprotokol tertentu seperti SMTP, POP3 dan

29 IMAP seterusnya berinteraksi dengan pelayan. Kelas-kelas teras bagi API JavaMail adalah sepert: 2.4.6.1 Session Kelas Session mentakrifkan satu sesi mel yang asas. Menerusi sesi inilah keseluruhan sistem boleh berfungsi. Objek Session mengambil kelebihan dari objek java.util.properties untuk mendapatkan maklumat seperti pelayan mel, nama pengguna, kata laluan dan lain-lain maklumat yang boleh dikongsi oleh keseluruhan aplikasi. 2.4.6.2 Store Setelah mempunyai objek Session, sambungan dilakukan kepada suatu Store dengan menggunakan nama pengguna dan kata laluan. Store harus diberitahu tentang protokol yang digunakan untuk mencapai mesej (IMAP). 2.4.6.3 Address Pengalamatan mesej dilakukan dengan menggunakan kelas Address. Tiga jenis alamat yang telah ditakrif ialah: i. Message.RecipientType.TO ii. Message.RecipientType.CC iii. Message.RecipientType.BCC

30 2.4.6.4 Message Setelah mempunyai Session, mesej yang hendak dihantar atau diterima boleh dicipta. Ini dilakukan dengan mentakrifkan jenis kelas Message. Message yang biasa digunakan ialah MimeMessage, di mana ia merupakan satu mesej e-mel yang memahami kapala dan jenis MIME. Kepala mesej dihadkan kepada aksara US- ASCII sahaja, meskipun aksara bukan ASCII boleh id enkodkan dalam medanmedan kepala yang tertentu. 2.4.6.5 Authenticator Bagi sesetengah pelayan mel, ia memerlukan pengesahan terlebih dahulu sebelum ia dapat menggunakan hostnya untuk manghantar e-mel. Oleh itu, Authenticator digunakan untuk membuat pengesahan dan hantar kepada pelayan tertentu yang dilindungi daripada nama pengguna dan kata laluan. 2.4.6.6 Transport Bahagian yang terakhir untuk menghantar sesautu mesej ialah dengan menggunakan kelas ini. Versi lalai bagi kelas tersebut boleh digunakan dengan memanggil kaedah static send() atau sendmessage().

31 2.4.7 Classifier4J Classifier4J merupakan perpustakaan Java sumber terbuka yang dicipta untuk membuat pengelasan perkataan. Ia juga mempunyai satu pengimplementasian bagi pekelasan Bayesian. Tambahan pula, pada versi Classifier4J terbaru, ia juga mempunyai kelas-kelas yang boleh membuat rumusan terhadap perkataan-perkataan. Ia mempunyai empat pakej. Iaitu: net.sf.classifier4j, net.sf.classifier4j.bayesian, net.sf.classifier4j.summariser dan net.sf.classifier4j.util. 2.4.7.1 Classifier4J.bayesian Pakej ini mempunyai kelas-kelas java yang direka dan dicipta mengikut teori Bayes. Di mana teori Bayes merupakan satu teori yang dapat membuat penapisan terhadap input perkataan. Kelas-kelas yang dipanggil adalah seperti: IWordsDataSource wds = new SimpleWordsDataSource(); IClassifier classifier = new BayesianClassifier(wds); System.out.println( "Matches = " + classifier.classify("this is a sentance") ); Di mana output yang dipapar adalah satu anggaran sepert 0.0 atau 0.99. Jika output 0.99 bermakna perkataan yang hendak dicari terdapat dalam perkataan itu. Dengan cara ini, penapisan terhadap mel spam dapat dijalani.

32 2.4.7.2 Classifier4J.summariser Pakej ini mempunyai kelas-kelas java yang dapat membuat rumusan terhadap ayat-ayat tertentu. Di mana, cuma perlu menghantar ayat-ayat tersebut kepada kelaskelas java, kemudian ia akan dirumuskan mengikut permintaan pengguna berapakah peranggan yang hendak dirumuskan. 2.5 Rumusan Bab 2 ini menerangkan tentang pengenalan kepada kajian bagi sistem yang akan dibangunkan. Kajian aplikasi e-mel termasuk kajian terhadap ciri-ciri yang ada dalam aplikasi e-mel, protokol yang digunakan dan penapisan e-mel spam yang akan diimplementasikan dalam sistem tersebut. Kajian juga melibatkan beberapa teknologi yang akan digunakan dalam sistem tersebut, iaitu pelayan-pelanggan, JAVA dan web services. Bab-bab yang seterusnya akan menerangkan metodologi pembangunan dan juga akan menghasilkan rekabentuk awalan tentang sistem yang akan dibangunkan.

BAB 3 METODOLOGI 3.1 Metodologi Model Air Terjun Pembangunan mestilah dirancang dengan teliti dan sistematik untuk menghasilkan satu sistem yang baik dan bermanfaat. Proses pembangunan bagi suatu sistem melibatkan beberapa fasa yang dirangkumkan dalam satu kitar hayat yang dikenali sebagai kitar hayat pembangunan. Di dalam bahagian ini, penerangan mengenai proses-proses yang dilalui di dalam kegiatan pembangunan perisian projek diterangkan. Metodologi yang digunakan untuk projek ini ialah model air terjun. Model Air Terjun merupakan model yang mengikut langkah demi langkah di mana sesuatu langkah dalam proses pembangunan sistem tidak boleh dilaksanakan selagi langkah sebelumnya tidak dilaksanakan. Hasil bagi Model Air Terjun adalah seperti dokumen keperluan, dokumen rekabentuk, dokumen kod dan dokumen pengujian. Hasil output akan menunjukkan sama ada proses tersebut telah diikuti mengikut perancangan ataupun tidak. Fasa-fasa umum yang terdapat dalam model ini adalah Fasa Perancangan Sistem, Fasa Analisis Keperluan, Fasa Rekabentuk, Fasa

34 Pengkodan dan Fasa Pengujian serta Fasa Pengoperasian dan Penyelenggaraan. Rajah 3.1 menunjukkan kitar hayat pembangunan sistem mengikut fasa-fasa. Fasa Perancangan Sistem Fasa Analisa Keperluan Fasa Rekabentuk Fasa Pengkodan dan Pengujian Fasa Operasian dan Penyelenggaran Rajah 3.1 Kitar Hayat Pembangunan Sistem 3.1.1 Fasa Perancangan Sistem Fasa Perancangan Sistem merupakan fasa permulaan yang perlu dilalui dalam proses pembangunan sistem. Fasa ini merupakan subset kepada aktiviti pengurusan pembangunan dan ia mungkin juga dilaksanakan di pertengahan perlaksanaan projek jika sesuatu perkara yang tidak dijangka berlaku. Matlamat utama fasa ini ialah menentukan objektif, skop, sumber dan peralatan yang akan terlibat dan perancangan kerja. Perancangan memerlukan kepakaran dan pengalaman kerana ia merupakan satu kerja yang rumit. Perancangan yang baik akan menghasilkan kerja yang memuaskan sebagai mana yang dijangkakan.

35 Projek ini dijalankan mengikut masa yang telah disusun agar laporan awal dapat disiapkan dalam masa yang telah ditetapkan dan pembentangan untuk projek ini dapat dijalankan dengan lancar. Lampiran A (Carta Gantt) menunjukkan langkah-langkah yang telah dijalankan untuk membangunkan sistem. 3.1.2 Fasa Analisis Keperluan Di dalam fasa ini, analisis keperluan seperti proses mengumpul dan menganalisis maklumat yang diperoleh daripada fasa perancangan dilaksanakan. Analisis dan kajian dilakukan untuk mengenal pasti keperluan projek secara terperinci. Dalam fasa ini juga, masalah dan kelemahan sistem-sistem e-mel yang sedia ada dikaji dan maklum balas dari pengguna sistem e-mel sedia ada di internet juga dikumpulkan untuk membuat pengajian. Dalam projek ini, keperluan-keperluan dianalisa dari: i. Modul E-mel Di dalam modul ini, fungsi-fungsi yang telah disediakan untuk membentuk satu sistem yang membolehkan pengguna mendapatkan e-mel dari IMAP4 dan POP3 kemudian menghantar e-mel melalui pelayan SMTP. Selain itu, ia juga membentuk satu web services yang boleh dipanggil bagi melaksanakan fungsifungsi tertentu yang melengkapkan sistem e-mel ini.

36 ii. Modul Penapisan Modul ini akan bertindak untuk mengasingkan e-mel yang tidak dikehendaki oleh pengguna. Pengguna juga boleh membentuk syarat-syarat bagi mengenal pasti sama ada sesuatu e-mel tersebut boleh dianggap sebagai e-mel spam. iii. Modul J2ME Dalam menyediakan modul capaian melalui telefon mudah alih ini, keperluan dan kekangan terhadap sambungannya harus diberi perhatian. Fungsi-fungsi yang disediakan haruslah padat dan ringkas supaya tidak membebankan sambungan dan dapat mengatasi kekangan mesej terlalu panjang, jenis alat capaian yang berbeza dan lebar jalur capaian yang mudah. Hasil yang diperoleh daripada fasa ini merangkumi keperluan terperinci sistem dan pilihan penyelesaian. Rajah kes gunaan telah dibentuk dan diterangkan di dalam bab IV. 3.1.3 Fasa Rekabentuk Fasa rekabentuk menerangkan bagaimana keperluan-keperluan yang telah ditentukan pada fasa analisis dipenuhi. Ia melibatkan paparan menu pada web, hubungan antara menu-menu dan menu pilihan syarat-syarat pengisihan yang ditakrif pengguna. Dalam rekabentuk seni bina, pembahagian modul adalah berdasarkan kepada keperluan yang telah ditentukan sebelum ini. Huraian yang terperinci berkenaan dengan setiap rekabentuk sistem telah dinyatakan dalam bab IV

37 3.1.4 Fasa Pengkodan dan Pengujian Fasa ini melibatkan pengekodan dan pengujian aturcara yang mana implementasinya adalah bergantung kepada fasa rekabentuk. Hasil untuk fasa ini diuji untuk memastikan unit-unit program yang telah siap dikodkan bebas dari sebarang ralat. 3.1.5 Fasa Operasi dan Penyelenggaraan Fasa ini telah melibatkan pengoperasian sistem yang telah dibangunkan dan seterusnya penyelenggaraan terhadap sistem tersebut dijalani. Dokumentasi yang dikeluarkan akan digunakan sebagai rujukan pada masa depan 3.2 Justifikasi Penggunaan Metodologi Model Air Terjun Untuk menbangunkan satu aplikasi yang baik, metodologi yang digunakan perlu dipilih dengan teliti. Metodologi model air terjun digunakan kerana projek yang akan dibangunkan merupakan projek individu maka kompleksiti bagi sistem ini adalah rendah. Selain itu semasa pembangunan projek ini, implementasi hanya boleh dijalankan selepas perancangan dan rekabentuk sistem. Ia telah menunjukkan sifat model air terjun di mana sesuatu langkah dalam proses pembangunan sistem tidak boleh dilaksanakan selagi langkah sebelumnya tidak dilaksanakan. Di samping itu, masa pembangunan projek ini juga adalah singkat maka semasa mula membuat implementasi, tiada masa

38 yang cukup lagi untuk membuat perancangan semula. Dengan sebab-sebab yang dinyatakan ini, akhirnya metodologi model air terjun telah dipilih sebagai metodologi yang digunakan untuk membangunkan projek ini. 3.3 Keperluan Perkakasan Dalam membangunkan aplikasi sistem e-mel ini, perkakasan yang diperlukan perlu dikenal pasti terlebih dahulu. Semasa memilih perkakasan, beberapa perkara perlu dipertimbangkan iaitu kos dan juga keupayaan perkakasan yang dipilih. Kos yang dinyatakan di sini adalah merujuk kepada kos peralatan yang akan digunakan dan kebiasaannya kos adalah berkaitan dengan keupayaan sistem. Keboleh harapan pula merujuk kepada pretasi sesuatu sistem itu. Oleh itu, ketiga-tiga perkara ini adalah saling berkaitan dan akan menentukan kecekapan sistem yang akan dibina. Keperluan perkakasan untuk pembangunan sistem adalah sekurang-kurang: i. Komputer peribadi dengan pemproses Pentium III ii. Cakera keras dengan saiz 20GB (minimum) iii. Ingatan RAM sebanyak 128 MB iv. Monitor SVGA v. Papan kekunci dan tetikus vi. Pemacu cakera liut 3.5 inci

39 3.4 Keperluan Perisian Di dalam pembangunan projek ini, perkakasan serta perisian yang diperlukan adalah seperti yang dinyatakan di bawah. Pemilihan perisian dibuat berdasarkan kesesuaian dan kebolehan perisian tersebut untuk memenuhi keperluan projek ini. Perkakasan pula dipilih berdasarkan perkakasan yang dicadangkan oleh perisian yang digunakan. Berikut adalah perisian yang diperlukan untuk pembangunan sistem: i. Java2 SDK Edisi Java ini perlukan untuk menulis aturcara dalam Java. Ia juga mengandungi Java Runtime Environment (JRE) dan alatan-alatan serta kelas-kelas yang digunakan untuk mengkompil, melakukan proses debug dan melarikan aplikasiaplikasi yang dibangunkan dengan menggunakan platform Java. ii. Pelayan web (Jakarta Tomcat) Pelayan web ini digunakan kerana ia menyokong teknologi Java. Selain itu, ia boleh diperoleh secara percuma dari internet. iii. TextPad Menyediakan editor yang mudah untuk menulis kod aturcara. TextPad boleh didapati secara percuma dari internet. iv. Microsoft SQL Server 2000

40 Perisian pangkalan data hubungan. Ia adalah berdasarkan senibina pelayan/pelanggan yang membahagikan pemprosesan kepada dua bahagian: komponen pelanggan (front-end), yang dilaksanakan di dalam computer pengguna, manakala pelayan (back-end) yang dilaksanakan di komputer pelayan. v. Microsoft Word XP Digunakan bagi tujuan pendokumentasian vi. Rational Rose Digunakan untuk menghasilkan rajah kes gunaan dan rajah jujukan vii. Microsoft Project XP Perisian sokongan bagi projek ini digunakan untuk membangunkan Carta Gantt.

BAB 4 REKABENTUK 4.1 Pengenalan Rekabentuk sistem merupakan antara langkah yang sangat penting dalam proses pembangunan sistem. Rekabentuk yang baik dapat menjamin bahawa sistem yang dihasilkan memenuhi keperluan-keperluan pengguna dan mencapai semua objektif yang ditetapkan. Selain itu, rekabentuk juga merupakan gambaran awal bagi aliran sistem yang akan dibangunkan. Oleh itu, bab ini akan menghuraikan dengan lebih terperinci tentang rekabentuk pangkalan data dan rekabentuk modul mengenai sistem yang telah dibangunkan. Rekabentuk sistem ini terdiri daripada rekabentuk berpandukan Unified Modelling Language (UML). Oleh itu, rajah kes gunaan dan rajah jujukan telah dilukis dengan notasi UML supaya memudahkan pemahaman pembaca terhadap perjalanan keseluruhan sistem.

42 4.2 Rekabentuk Senibina Sistem Sistem yang dibangunkan ini, dipecahkan kepada dua aras yang berlainan iaitu aras Web Services dan aras aplikasi. Aras Web Services merupakan servis-servis yang boleh dipanggil bagi melaksanakan fungsi-fungsi tertentu. Fungsi-fungsi inilah yang melengkapkan sistem e-mel ini. Sebagai contoh, aras Web Services ini akan menerima data daripada aras aplikasi dan seterusnya melaksanakan fungsi-fungsi tertentu. Selepas fungsi-fungsi dilaksanakan, hasilnya akan dipulangkan kepada aras aplikasi semula. Servis-servis yang ada pada aras Web Services adalah seperti manipulasi buku alamat, konfigurasi penapis, memuat turun e-mel dan menghantar e-mel. Aras aplikasi pula merupakan aplikasi yang menyediakan antaramuka pengguna bagi membolehkan pengguna memasukkan data yang berkaitan. Kemudian data-data tersebut akan dihantar kepada aras Web Services. Tambahan pula, aras aplikasi juga akan memastikan data-data yang diperolehi memenuhi spesikasi sebelum memanggil servis-servis yang ada pada aras Web Services. Contoh-contoh aras aplikasi ialah aplikasi yang menyediakan antaramuka seperti senarai e-mel yang diterima, senarai penapis dan kandungan buku alamat. Selain itu, antaramuka tersebut juga turut menyediakan bahagian yang membolehkan pengguna memanipulasikan sesuatu data. Kedua-dua aras ini berhubung dengan menggunakan protokol SOAP/HTTP. Aras aplikasi akan menghantar permintaan kepada Web Services tertentu di dalam bentuk dokumen XML. Rajah 4.1 menunjukkan hubungan di antara aras aplikasi dan aras Web Services serta pangkalan data yang terlibat.

43 Pelayan Web Services: Sediakan Web Service E-mel Pangkalan Data Aras Atas: Web Services SOAP/HTTP INTERNET Aras Bawah: Aplikasi Web Services Pelayan Web: Sediakan Aplikasi E-mel Rajah 4.1 : Rekabentuk Senibina sistem 4.3 Rekabentuk Senibina Pelayan Web Services Rajah 4.2 merupakan rekabentuk senibina pelayan Web Services. Mula-mula, pelayan akan memuat turun mesej dari peti surat elektornik, kemudian mesej tersebut akan dihantar kepada pelayan untuk melaksanakan penapisan e-mel spam mengikut teknik Bayesian yang telah diimplementasikan. Selepas penapisan e-mel spam dijalankan, Mesej yang merupakan e-mel spam akan dihapuskan dan mesej yang bukan e-mel spam akan dihantar kepada pelanggan e-mel.

44 Pelanggan e-mel Pelayan IMAP Peti Surat Inbox Memeriksa buku alamat Mesej yang bukan spam dihantar kepada pelanggan e-mel Pelayan web services Pangkalan Data Mesej yang berada di peti surat inbox Penapisan e-mel spam dijalankan Rajah 4.2 : Rekabentuk Senibina Pelayan Web Services 4.4 Rajah Kes Guna Kelakuan sistem menunjukkan bagaimana sesuatu sistem bertindak dan bertindakbalas terhadap persekitarannya. Kelakuan sistem digambarkan dalam kes guna di mana kes guna menerangkan tentang sistem dan persekitaran serta hubungan antara sistem dengan persekitarannya.

45 Rajah kes guna adalah terdiri daripada aktor (yang menunjukkan persekitaran sistem) dan kes guna (yang menunjukkan fungsi bagi sistem). Rajah kes guna yang sama boleh digunakan dalam fasa analisa keperluan, rekabentuk dan pengujian. Rajah ini digunakan sebagai medium komunikasi antara pengguna dan pakar domain. Ia digunakan untuk mengenalpasti siapa yang akan berinteraksi dengan sistem dan apa yang boleh dilakukan oleh sistem. Aktor yang terlibat dalam sistem ialah pelanggan e-mel. Rajah 4.3 berikut menunjukkan rajah kes guna bagi sistem e-mel yang telah dibangunkan. Hantar E-mel Pelanggan (f rom Logical View) Penapisan E-mel Kemasikini Buku Alamat E-mel Spam Muat Turun E-mel Kemaskini Buku Alamat LogIn Pendaftaran Peti Surat Elektronik (f rom Logical View) Pengurus Kemaskini Markah Spam Pelayan Berasaskan WebServices (f rom Logical View) Kemaskini Fail Hitam Rajah 4.3 : Rajah kes guna untuk sistem yang telah dibangunkan

46 4.4.1 Penerangan Aktor Jadual 4.1 merupakan keterangan untuk aktor sistem yang terlibat. Terdapat tiga aktor bagi sistem yang telah dikenalpasti. Keterangan seperti di bawah: Jadual 4.1 : Keterangan Aktor Aktor Pengurus Pelanggan e-mel Pelayan berasakan WebServices Peti surat elektronik Peranan Pengurus ini akan berinteraksi dengan system melalui Internet. Pengurus boleh mengemaskinikan markah spam dan fail hitam. Pengguna ini akan berinteraksi dengan sistem melalui Internet. Pengguna ini boleh melakukan proses menghantar e-mel, memuat turun e-mel, mengemaskini buku alamat, mengemaskini alamat e-mel spam dan mengemaskini data pengguna sendiri. Pelayan ini akan berinterasi dengan pelanggan dan peti surat elektronik. Oleh itu, untuk melakukan tugas ini, ia menyediakan servis-servis yang melaksanakan fungsi-fungsi tertentu. Sebagai contoh, ia akan menerima mesej dari pelanggan dan seterusnya menghantar mesej tersebut ke peti surat elektornik dengan menggunakan protokol SMTP. Tambahan pula, ia juga digunakan untuk memuat turun mesej dari peti surat elektornik dengan protokol IMAP. Kemudian menghantar mesej tersebut kepada pelanggan selepas penapisan spam dilakukan. Peti surat elektronik ialah pelayan yang menyimpan mesejmesej e-mel pelanggan.

47 4.4.2 Penerangan Kes Guna Kes guna menunjukkan aktiviti yang boleh dilakukan oleh aktor dalam sistem. Setiap kes guna akan menjanakan sekurang-kurangnya satu rajah jujukan. Jadual 4.2 menunjukkan aktiviti-aktiviti bagi setiap kes guna. Jadual 4.2 : Aktiviti-aktiviti yang dilaksanakan oleh kes guna Kes Guna Aktiviti Pendaftaran Kes guna ini membolehkan pengguna baru mendaftar satu akaun. Apabila pengguna mempunyai akaun, beliau boleh mengunakan servis yang disediakan oleh pelayan seperti menghantar e- mel dan memuat turun e-mel. Selain itu, Id pengguna dan katalaluan adalah unit. LogIn Kes guna ini mengaplikasikan keselamatan minima dengan merujuk id dan katalaluan pengguna sebagai kawalan capaian. Muat Turun E-mel Kes guna ini membolehkan pengguna memanggil servis di pelayan supaya dapat mencapai dan memuat turun e-mel. Hantar E-mel Kes guna ini membenarkan pengguna menulis e- mel. Seterusnya, e-mel tersebut akan dihantar melalui pelayan kepada peti surat elektornik tertentu. Status penghantaran sama ada berjaya atau tidak akan dipulangkan kepada pengguna Penapisan Spam Kes guna ini digunakan untuk menapis e-mel yang berbentuk spam sebelum ia sampai ke kotak mel pengguna.

48 Kemaskini Buku Alamat Kemaskini Buku Alamat E-mel Spam Kemaskini Markah Spam Kemaskini Fail Hitam Kes guna ini membolehkan pengguna menambah alamat e-mel dalam buku alamat yang disediakan. Aktiviti lain seperti pengeditan dan penghapusan juga boleh dilakukan Kes guna ini membolehkan pengguna menambah alamat e-mel berbentuk spam dalam buku alamat yang disediakan. Aktiviti lain seperti pengeditan dan penghapusan juga boleh dilakukan Kes guna ini membolehkan pengurus mengubah markah spam di mana jika markah pengesahan lebih daripada markah spam tersebut, ia dikenali sebagai e-mel spam Kes guna ini membolehkan pengurus menambah dan menghapus perkataan-perkataan. Di mana apabila perkataan tersebut dikesan, e-mel tersebut dikenali sebagai e-mel spam. 4.5 Rajah Jujukan Fokus utama rajah jujukan adalah masa. Ia menunjukkan jujukan masa yang dihantar dan diterima dan juga objek yang terlibat dalam sesuatu transaksi. Suatu rajah jujukan mengandungi objek dengan lifetime, pertukaran mesej antara objek dalam tatasusunan dan fokus kawalan.

49 Sebanyak 8 rajah jujukan untuk setiap kes guna telah dihasilkan untuk menggambarkan proses yang berlaku dalam sistem. Rajah jujukan boleh dirujuk dalam Lampiran B. 4.5.1 Rajah Jujukan Bagi Pendaftaran Sila rujuk Rajah B.1 di Lampiran B. Rajah jujukan ini menggambarkan bagaimana pengguna membuat pendaftaran ke dalam sistem yang disediakan. Maklumat yang perlu dimasukkan oleh pengguna ialah id pengguna, nama pangguna, ic pengguna dan kata laluan. Selepas itu, maklumat tersebut akan dihantar kepada pangkalan data. Kemudian, pengguna boleh menggunakan id dan kata laluan tersebut untuk mencapai ke dalam sistem. 4.5.2 Rajah Jujukan Bagi Login Sila rujuk Rajah B.2 di Lampiran B. Rajah jujukan ini menggambarkan bagaimana pengguna memasuk ke dalam sistem yang disediakan. Maklumat yang perlu dimasukkan oleh pengguna ialah id pengguna dan kata laluan. Kemudian pengguna akan menekan butang Sign In untuk menghantar maklumat tersebut kepada pangkalan data. Selepas itu, pangkalan data akan diperiksa untuk memastikan pengguna memasukkan data yang sepadan. Dengan maklumat login yang sah, halaman pengguna akan dipapar di mana pengguna boleh meneruskan urusan seterusnya.

50 4.5.3 Rajah Jujukan Bagi LoginPetiMelElektronik Sila rujuk Rajah B.3 di Lampiran B. Rajah jujukan ini menggambarkan bagaimana pengguna memasuk ke dalam peti surat elektronik beliau. Mula-mula pengguna perlu memasukkan maklumat nama host, nama akaun pengguna bagi mel elektronik beliau dan kata laluan. Maklumat tersebut akan dihantar kepada pelayan yang berasaskan WebServices iaitu pelayan yang telah dibangun dalam sistem ini. Pelayan akan menghantar meklumat tersebut ke peti surat elektronik mengikut nama host. Jika login tidak sah bagi peti surat elektronik, pelayan akan hantar mesej kepada pengguna supaya login sekali lagi atau menggunakan akaun peti surat elektronik yang lain. 4.5.4 Rajah Jujukan Bagi Muat Turun E-mel Sila rujuk Rajah B.4 di Lampiran B. Rajah jujukan ini menggambarkan bagaimana pengguna dapat memuat turun e-mel melalui pelayan. Selepas login, pelayan akan memuat turun e-mel dari peti surat elektronik dengan menggunakan protokol IMAP. Data-data e-mel tersebut akan disimpan dalam kelas-kelas tertentu di pelayan. Kemudian, pelayan akan memaparkan kepala e-mel supaya pengguna boleh memilih mana satu e-mel yang hendak dilihat terlebih dahulu. Apabila pengguna memilih e-mel yang hendak dilihat, keseluruhan mesej e-mel akan dipaparkan di halaman yang lain. Pengguna juga dapat memuat turun lampiran-lampiran bagi e-mel yang mempunyai lampiran. Selepas itu, pengguna boleh meneruskan urusan seterusnya

51 4.5.5 Rajah Jujukan Bagi Hantar E-mel Sila rujuk Rajah B.5 di Lampiran B. Rajah jujukan ini menggambarkan bagaimana pengguna dapat menghantar e-mel melalui pelayan. Pengguna boleh memilih dan memasuk ke dalam halaman hantar e-mel. Kemudian, pengguna boleh menulis mesej dan juga membuat lampiran sebelum e-mel tersebut dihantar. Selain itu, alamat e-mel yang hendak dihantar juga perlu dituliskan. Selepas pengguna menekan butang send, mesej tersebut akan dihantar kepada pelayan dan seterusnya pelayan akan membuat pengesahan terhadap pelayan SMTP tertentu supaya boleh menghantar e-mel. Selepas pengesahan disahkan, e-mel tersebut akan dihantar. 4.5.6 Rajah Jujukan Bagi Kemaskini Buku Alamat Sila rujuk Rajah B.6 di Lampiran B. Rajah jujukan ini menggambarkan bagaimana pengguna mengemaskini buku alamat. Mula-mula, pengguna memilih dan masuk ke halaman buku alamat, kemudian, pengguna boleh membuat aktiviti kemaskini terhadap buku alamat tersebut seperti menambah alamat dan menghapus alamat. Selepas aktiviti kemaskini dilakukan, maklumat-maklumat tersebut akan disimpan ke dalam pangkalan data.

52 4.5.7 Rajah Jujukan Bagi Kemaskini Buku Alamat E-mel Spam Sila rujuk Rajah B.7 di Lampiran B. Rajah jujukan ini menggambarkan bagaimana pengguna mengemaskini buku alamat e-mel spam. Mula-mula, pengguna memilih dan masuk ke halaman buku alamat e-mel spam, kemudian, pengguna boleh membuat aktiviti kemaskini terhadap buku alamat tersebut seperti menambah alamat dan menghapus alamat. Alamat yang dimasukkan adalah alamat e-mel spam, ia akan digunakan dalam penapisan e-mel spam supaya e-mel yang mempunyai alamat tersebut tidak akan masuk ke dalam peti surat elektronik pengguna. Selepas aktiviti kemaskini dilakukan, maklumat-maklumat tersebut akan disimpan ke dalam pangkalan data. 4.5.8 Rajah Jujukan Bagi Penapisan Spam Sila rujuk Rajah B.8 di Lampiran B. Rajah jujukan ini menggambarkan bagaimana penapisan e-mel spam dilakukan. Selepas pelayan memuat turun e-mel dari peti surat elektronik, ia akan menjalankan aktiviti penapisan e-mel spam sebelum e-mel tersebut dipaparkan kepada pengguna. Terlebih dahulu, alamat di buku alamat dan alamat di buku alamat e-mel spam akan diterima dari pangkalan data. Kemudian, e-mel yang telah dimuat turun akan dipecahkan kepada beberapa bahagian iaitu alamat dari mana, subjek mesej dan badan mesej. Seterusnya, ia akan disetkan dalam satu String, String tersebut akan dibanding dengan alamat-alamat. Jika alamat spam, e-mel tersebut akan dihapuskan.

53 4.5.9 Rajah Jujukan Bagi Kemaskini Markah Spam Sila rujuk Rajah B.9 di Lampiran B. Rajah jujukan ini menggambarkan bagaimana pengurus mengemaskini markah spam. Mula-mula, pengurus memilih dan masuk ke halaman markah spam, kemudian, pengurus boleh membuat aktiviti mengubah markah spam tersebut. Selepas aktiviti kemaskini dilakukan, markah spam tersebut akan disimpan ke dalam fail 4.5.10 Rajah Jujukan Bagi Kemaskini Fail Hitam Sila rujuk Rajah B.10 di Lampiran B. Rajah jujukan ini menggambarkan bagaimana pengurus mengemaskini fail hitam. Mula-mula, pengurus memilih dan masuk ke halaman fail hitam kemudian, pengurus boleh membuat aktiviti kemaskini terhadap fail hitam tersebut seperti menambah dan menghapus perkataan. Perkataan yang dimasukkan digunakan dalam penapisan e-mel spam di mana apabila perkataan tersebut dikesan e-mel tersebut akan dikenali sebagai e-mel spam. Selepas aktiviti kemaskini dilakukan, maklumat-maklumat tersebut akan disimpan ke dalam pangkalan data.

54 4.6 Rajah Kelas Rajah kelas adalah rajah yang terdiri dari kelas-kelas atau objek. Objek mewakili suatu entiti secara fizikal atau konseptual yang mempunyai keadaan, kelakuan dan identiti. Objek adalah instant kepada kelas. Kelas menerangkan sekumpulan objek yang mempunyai atribut, kelakuan dan hubungan yang sama dengan objek-objek lain. Kelas adalah suatu konsep pengabstrakan di mana ia hanya mementingkan ciri-ciri yang bersesuaian dengan domain masalah. Dengan ini, kerumitan masalah dapat diatasi. Rajah 4.4 menunjukkan rajah kelas bagi sistem. guna Hantar E-mel Pengguna guna daftar Muat Turun E-mel Akaun Pengguna kemaskini Buku Alamat tapis Penapisan Spam Rajah 4.4 : Rajah kelas sistem

55 4.7 Rekabentuk Pangkalan Data Pangkalan Data berfungsi untuk menyimpan data-data yang terlibat dalam sistem. Rekabentuk dan struktur data disimpan dalam bentuk jadual. Kesepaduan dapat dibentuk melalui penyimpanan semua data-data secara berpusat di dalam koleksi fail pangkalan data kerana ini memudahkan proses capaian bagi data yang tersimpan. Perisian Microsoft Access 2000 telah digunakan bagi membina pangkalan data ini dalam persekitraran tetingkap windows. Data-data yang akan disimpan ialah maklumat pengguna, maklumat buku alamat dan maklumat buku alamat spam. Rajah B.9 dalam Lampiran B menunjukkan hubungan antara jadual-jadual dalam rekabentuk pangkalan data. 4.7.1 Jadual dbuserdetail Jadual ini digunakan untuk menyimpan maklumat peribadi pengguna. Jadual 4.3 ini juga digunakan oleh pengguna untuk memperolehi maklumat peribadi dan membuat pengemaskinian. Jadual 4.3 : Jadual dbuserdetail Nama Medan Jenis Data Keterangan Name Text Nama pengguna IC Text IC pengguna Password Text Kata laluan

56 4.7.2 Jadual dbaddressbook Jadual 4.4 ini digunakan untuk menyimpan maklumat alamat e-mel kawan pengguna. Jadual ini digunakan oleh servis penapisan spam untuk membuat penapisan Ia juga digunakan oleh pengguna untuk memperolehi maklumat alamat e-mel kawan dan membuat pengemaskinian ke atasnya Jadual 4.4 : Jadual dbaddressbook Nama Medan Jenis Data Keterangan Ic Text Ic pengguna Address Text Alamat e-mel kawan Name Text Nama kawan tersebut Phone Text Nombor telefon kawan 4.7.3 Jadual dbspam Jadual 4.5 ini digunakan untuk menyimpan maklumat alamat e-mel kawan pengguna. Jadual ini digunakan oleh servis penapisan spam untuk membuat penapisan Ia juga digunakan oleh pengguna untuk memperolehi maklumat alamat e-mel kawan dan membuat pengemaskinian ke atasnya

57 Jadual 4.5 : Jadual dbspam Nama Medan Jenis Data Keterangan Address Text Alamat e-mel yang dikenali sebagai e- mel berbentu spam 4.7.4 Jadual dbblacklist Jadual 4.6 ini digunakan untuk menyimpan perkataan yang menunjukkan e-mel tersebut ialah e-mel spam. Apabila perkataan tersebut dikesan dalam sesuatu e-mel, e- mel tersebut dikenali sebagai e-mel spam. Jadual ini digunakan oleh servis penapisan spam untuk membuat penapisan dan juga digunakan oleh pengurus untuk membuat pengemaskinian ke atasnya Jadual 4.6 : Jadual dbblacklist Nama Medan Jenis Data Keterangan KeyWord Text Perkataan yang dikenali sebagai e-mel berbentu spam

58 4.8 Rekabentuk Antaramuka Rekabentuk antaramuka merupakan ciri terpenting dalam sesuatu sistem. Dalam fasa awal proses membangunkan sistem e-mel ini, beberapa antaramuka telah direkabentuk untuk memberi gambaran awalan mengenai sistem yang akan dibangunkan kepada pengguna. Antaramuka yang direkabentuk adalah bersifat Antaramuka Pengguna Bergrafik (GUI) dan memenuhi ciri-ciri heuristik. Rajah-rajah antaramuka dalam seperti di bawah adalah diletakkan dalam Lampiran D. i) Kata Laluan Antaramuka kata laluan merupakan permulaan bagi penggunaan sistem. Pengguna perlu memasukkan alamat e-mel dan kata laluan supaya boleh mecapai ke kotak e- mel sendiri. ii) Kotak Mel Antaramuka ini merupakan halaman selepas pengguna login ke dalam sistem. Di sini, pengguna berupaya memuat turun e-mel, menghantar e-mel, mengemaskini buku alamat dan sebagainya. iii) Buku Alamat Antaramuka ini disediakan kepada pengguna untuk memasukkan alamat e-mel bagi kawan-kawan yang ingin dihubungi. Pengguna boleh mengemaskinikan buku alamat seperti menambah alamat e-mel baru dan hapuskan alamat e-mel yang ada.

59 4.9 Rekabentuk Modul Rekabentuk modul terdiri daripada beberapa modul utama di mana setiap modul mempunyai kepentingnya sendiri. Terdapat banyak modul diperlukan untuk melengkapkan sistem ini. Berikut merupakan modul-modul yang terdapat dalam sistem ini. 4.9.1 Modul Pendaftaran Modul ini membolehkan pengguna mendaftar sebagai pengguna sistem WebServices. Setiap akaun mempunyai satu Id pengguna yang unit. Id pengguna digunakan bersama kata laluan untuk membenarkan pengguna menggunakan perkhidmatan penghantaran mel dan sebagainya. Tambahan pula, setiap akaun mempunyai satu jadual buku alamat dan buku alamat e-mel spam yang berada di dalam pangkalan data. 4.9.2 Modul Mel Modul ini membolehkan pengguna mendapatkan e-mel dari peti surat elektronik yang mempunyai protokol IMAP4. Selain itu, modul ini juga membenarkan pengguna menghantar e-mel melalui pelayan SMTP ke peti surat elektronik tertentu. Selain itu, ia juga membentuk satu Web Services yang boleh dipanggil bagi melaksanakan fungsifungsi tertentu yang melengkapkan sistem e-mel ini.

60 4.9.3 Modul Penapisan Modul ini akan bertindak untuk mengasingkan e-mel yang tidak dikehendaki oleh pengguna. Pengguna juga boleh menambah alamat ke dalam buku alamat e-mel spam supaya semasa penapisan dijalankan, ia dapat mengenal pasti bahawa e-mel tersebut merupakan e-mel spam. Selain itu, modul ini telah meimplementasikan teknik bayesian filtering dimana proses penapisan spam akan mengikut teknik tersebut. 4.10 Rumusan Bab ini menerangkan tentang sistem yang dibangunkan bagi menyelesaikan masalah-masalah yang dikenalpasti semasa kajian awalan dibuat. Rajah kes guna dan rajah jujukan telah dihasil dan diterangkan. Tambahan pula, bab ini juga memberi gambaran mengenai sistem yang bakal dibangunkan berdasarkan senibina sistem, rekabentuk sistem, rekabentuk pangkalan data, modul-modul serta pergerakan data. Secara tidak langsung, ini memudahkan pembaca untuk memahami tentang sistem ini

BAB 5 IMPLEMENTASI DAN PENGUJIAN 5.1 Persekitaran Pembangunan Contoh-contoh persekitaran pembangunan adalah seperti sistem pengoperasian yang digunakan, bahasa pengaturcaraan, rangkaian dan pangkalan data. Persekitaran pembangunan yang sesuai membolehkan sistem diimplementasikan dengan lancar dan sempurna. Oleh itu, untuk membentuk persekitaran ini, segala perisian yang diperlukan haruslah disediakan dan dikonfigurasikan dengan teliti. Huraian mengenai persekitaran pembangunan akan dinyatakan seterusnya. 5.1.1 Ecplise Ecplise membenarkan pengaturcara membina kelas-kelas yang ditulis dalam bahasa pengaturcaraan Java. Di samping itu, pengisian Eclipse boleh didapati daripada

62 laman web Eclipse iaitu www.eclipse.org. Eclipse 3.0.1 telah digunakan untuk menulis kelas-kelas Java dalam sistem yang dibangunkan. Ia dipilih sebagai perisian untuk membangunkan kelas-kelas sistem disebabkan persekitaran yang disediakan oleh perisian ini sesuai dan mudah digunakan. Pengisian Eclipse memudahkan pengaturcara Java memasukkan perpustakaan Java luaran (external library) ke dalam perisian. Tambahan pula, ia juga mempunyai pelbagai fungsi yang memudahkan pengaturcara menggunakan kelas-kelas yang terdapat dalam perpustakaan Java. 5.1.2 TextPad TextPad 4.5 telah dipilih sebagai pengedit teks utama bagi fail-fail bukan kelaskelas Java. Ia digunakan untuk menulis halaman web berbentuk JSP dan HTML. 5.1.3 JDK 1.4.1 Java telah dipilih sebagai bahasa pengaturcaraan utama projek ini. Ini adalah disebabkan ciri-ciri keistimewaannya iaitu ia berorientasikan objek dan bebas platform. JDK 1.4.1 telah digunakan sebagai pengkompil utama bagi pembangunan sistem untuk komputer pelayan dan pelanggan. Untuk membolehkan fail Java dikompil, classpath perlu diset di persekitaran pembolehubah seperti : set classpath = C:\j2sdk1.4.1_03\lib\tools.jar; untuk JDK 1.4.1

63 5.1.4 Pangkalan Data Microsoft Access 2000 telah dipilih sebagai perisian untuk membina pangkalan data untuk sistem yang dibangunkan. Perisian ini adalah ramah pengguna dan mudah digunakan. Perisian ini adalah bersesuaian dengan keperluan sistem yang dibangunkan kerana sistem yang dibangunkan tidak memerlukan pangkalan data yang kompleks dan besar. 5.1.5 Pelayan WebLogic WebLogic merupakan antara pelayan web yang terkenal. Pelayan web ini berupaya mengkompil halaman web JSP dan memaparkannya. Selain itu, weblogic juga mempunyai komponen yang menyokong WebServices iaitu ia diimplementasikan dengan komponen J2EE (seperti Enterprise Java Beans and JMS) dan kelas Java. Tambahan pula, ia juga menyediakan satu kaedah kepiawaian bagi penghantaran data dan pemanggilan pemohonan WebServices (WebServices invocation call) di antara pelayan WebServices dengan pengguna WebServices. Ia menggunakan Simple Object Access Protocol (SOAP) 1.1 dan 1.2 sebagai format mesej dan menggunakan HTTP sebagai protocol perhubungan. Selain daripada itu, WebLogic Web services mengimplementasikan Java API bagi XML-based RPC (JAX-RPC) supaya applikasi pelanggan dapat digunakan untuk memohon WebLogic dan non-weblogic WebServices. Dengan adanya kelebihan yang dinyatakan di atas, maka WebLogic dipilih sebagai salah satu persekitaran pembanggunan untuk membangunkan sistem.

64 5.2 Implementasi Bahagian ini menerangkan dengan mendalam tentang implementasi Pelanggan e- mel berasaskan web services-java serta penapisan spam. 5.2.1 Penghantaran E-mel Penghantaran e-mel dilaksanakan oleh fungsi sendmail() yang disediakan di dalam kelas Mail. Sebelum mesej dapat dihantar, objek properties perlu dinyatakan dimana ia menunjukkan pelayan SMTP yang menghantar mel dan kemudian sesi akan diciptakan. Rajah 5.1 menunjukkan keratan aturcara untuk menghantar e-mel.... Properties props = System.getProperties(); props.put("mail.smtp.from","bylee@gawab.com"); props.put("mail.smtp.host", smtphost);... Session smtpsession = Session.getDefaultInstance( props,null); smtpsession.setdebug(false);... Message msg = new MimeMessage(smtpSession); msg.setsubject(subject); msg.setfrom(new InternetAddress(from)); msg.settext(message);

65 msg.savechanges(); t.sendmessage(msg,msg.getallrecipients());... Rajah 5.1 : Keratan aturcara untuk menghantar e-mel 5.2.1.1 Pengesahan SMTP Bagi sesetengah pelayan SMTP, ia memerlukan pengesahan terlebih dahulu sebelum ia membenarkan kita menghantar e-mel melalui pelayan SMTP tersebut. Oleh itu, fungsi pengesahan akan dihasilkan. Rajah 5.2 menunjukkan keratan aturcara untuk membuat pengesahan.... Properties props = System.getProperties(); props.put("mail.smtp.from","bylee@gawab.com"); props.put("mail.smtp.auth", "true"); Authenticator auth = new SMTPAuthenticator(); Session smtpsession = Session.getDefaultInstance( props,null); smtpsession.setdebug(false);... private class SMTPAuthenticator extends javax.mail.authenticator{ public PasswordAuthentication getpasswordauthentication() { return new PasswordAuthentication(smtpUser, smtppassword); }} Rajah 5.2 : Keratan aturcara untuk membuat pengesahan

66 5.2.2 Muat Turun E-mel Proses memuat turun e-mel bermula dengan memanggil fungsi openinbox() di dalam kelas Mail(). Fungsi ini akan mengwujudkan satu hubungan dengan pelayan IMAP. Jika sambungan berjaya dilaksanakan, fungsi ini akan memulangkan bilangan e- mel yang terdapat di peti surat elektronik pengguna. Rajah 5.3 menunjukkan keratan aturcara untuk memuat turn e-mel.... url = new URLName("imap", hostname, -1, "INBOX", username, password); mud = new MailUserData(url); Properties props = System.getProperties(); props.put("mail.smtp.host", hostname); session = Session.getDefaultInstance(props, null); session.setdebug(false); store = session.getstore(url); store.connect(); Folder folder = store.getdefaultfolder(); folder = folder.getfolder("inbox"); folder.open(folder.read_write); Message[] msgs = folder.getmessages();... Rajah 5.3 : Keratan aturcara untuk memuat turun e-mel

67 5.2.3 Penapisan Mel Spam Fungsi penapisan spam ini akan dipanggil semasa proses memuat turun e-mel dari pelayan IMAP. Fungsi penapisan spam ini akan memanggil kelas Bayesian() yang telah mengimplemtasikan kaedah Bayesian. Dalam kelas tersebut, ia mempunyai satu fungsi checkspammessage() untuk membuat perbandingan antara e-mel tersebut dengan nama alamat sah dan nama alamat spam di pangkalan data. Selain daripada nama alamat, ia juga akan membuat perbandingan antara mesej e-mel dengan kata-kata spam di fail blacklist tertentu. Selepas perbandingan dijalankan jumlah markah akan dipulangkan, markah yang melebihi 0.7 akan dianggap sebagai e-mel spam. Kemudian e-mel spam tersebut akan disetkan Flag Deleted dan akhirnya e-mel tersebut akan dihapuskan. Rajah 5.4 menunjukkan keratan aturcara untuk mendapatkan kandungan badan mesej dan kemudian menukarkan format mesej kepada format String. Rajah 5.5 menunjukkan keratan aturcara untuk penapisan spam. String from = ((InternetAddress)msg.getFrom()[0]).getPersonal(); from = ((InternetAddress)msg.getFrom()[0]).getAddress();... strmessage += "FROM: " + from; String subject = msg.getsubject(); strmessage += "SUBJECT: "+subject;... Part messagepart = msg; Object content = messagepart.getcontent(); if (content instanceof Multipart){ messagepart=((multipart)content).getbodypart(0); strmessage += "[ Multipart Message ]"; }

68 String contenttype=messagepart.getcontenttype(); strmessage += "CONTENT:"+contentType; if (contenttype.startswith("text/plain") contenttype.startswith("text/html")) { InputStream is = messagepart.getinputstream(); BufferedReader reader=new BufferedReader(new InputStreamReader(is)); String thisline=reader.readline(); while (thisline!=null){ strmessage +=thisline; thisline=reader.readline(); }}... Rajah 5.4 : Keratan aturcara untuk menukar format mesej... BayesianClassifier classifier = new BayesianClassifier(); File file = new File("blackList.txt"); FileInputStream fis = new FileInputStream(file);... //Membanding dengan kata-kata spam dalam fail classifier.teachmatch(icategorisedclassifier.default_category, str);... Membanding dengan nama alamat bukan spam classifier.teachnonmatch(icategorisedclassifier.default_category,str);... // Membanding dengan nama alamat spam classifier.teachmatch(icategorisedclassifier.default_category,str);

69... //Dapatkan markah dscore=classifier.classify(icategorisedclassifier.default_category,str);... Rajah 5.5 : Keratan aturcara untuk membuat penapisan spam Rajah 5.6 menunjukkan keratan aturcara untuk menghapuskan mesej. Mesej yang hendak dihapuskan perlu setkan bendera mesej kepada Flag Deleted terlebih dahulu, apabila objek folder.close(true) dipanggil mesej tersebut akan dihapuskan secara automatik. //Hapuskan mesej msgs[nmsg].setflag(flags.flag.deleted, true );... folder.close(true); Rajah 5.6 : Keratan aturcara untuk menghapuskan mesej

70 5.2.4 Proses Menambah Fail Lampiran E-mel yang hendak dihantar juga boleh dihantar dengan menambah fail lampiran. Untuk menambah fail lampiran dengan e-mel, MIMEBODYPART perlu disetkan. Rajah 5.7 menunjukkan keratan aturcara untuk menambah fail lampiran.... BodyPart messagebodypart = new MimeBodyPart(); BodyPart bp1 = new MimeBodyPart(); BodyPart bp2 = new MimeBodyPart(); bp1.settext(text); File htmlfile = new File(fileName); DataSource ds = new FileDataSource(htmlFile); DataHandler dh = new DataHandler(ds); bp2.setdatahandler(dh);... Multipart mp = new MimeMultipart(); mp.addbodypart(bp1); mp.addbodypart(bp2); Rajah 5.7 : Keratan aturcara untuk menambah fail lampiran

71 5.2.5 Memuat Turun Fail Lampiran Untuk memuat turun fail lampiran, bodypart perlu didapatkan terlebih dahulu. Kemudian fail tersebut akan dimuat turun kepada pengguna. Rajah 5.8 menunjukkan keratan aturcara untuk memuat turn fail lampiran.... part = mp.getbodypart(num);... File folder = new File("c:" + File.separator + "DownloadFile"); folder.mkdir(); File file = new File(getFilename()); DataInputStream dis = new DataInputStream( new BufferedInputStream(part.getInputStream())); DataOutputStream dos = new DataOutputStream( new BufferedOutputStream(new FileOutputStream(file)));... Rajah 5.8 : Keratan aturcara untuk memuat turun fail lampiran

72 5.2.6 Proses Memanggil Servis Proses memanggil servis ialah proses di mana pelanggan web services memanggil servis yang telah disediakan oleh pelayan. Rajah 5.9 merupakan keratan aturcara untuk memanggil servis.... System.setProperty("javax.xml.soap.MessageFactory", "weblogic.webservice.core.soap.messagefactoryimpl"); System.setProperty("javax.xml.rpc.ServiceFactory", "weblogic.webservice.core.rpc.servicefactoryimpl"); try { ServiceFactory factory = ServiceFactory.newInstance(); String targetnamespace = "http://www.mymail.com/webservices/javamail"; QName servicename = new QName(targetNamespace, "MailWS"); URL wsdllocation = new URL("http://localhost:7001/WebServices/MailWS?WSDL"); Service service = factory.createservice(wsdllocation, servicename); QName portname = new QName(targetNamespace, "MailWSPort"); QName operationname = new QName(targetNamespace, "getuserdetail"); Call call = service.createcall(portname, operationname); String result = (String) call.invoke(new Object[] {id, pas}); return result;

73 }catch (ServiceException e){ e.printstacktrace();return null;}... Rajah 5.9 : Keratan aturcara untuk memanggil servis 5.2.7 Proses Mendapatkan Data dari Pangkalan Data Keratan aturcara untuk mendapatkan data dari pangkalan data adalah lebih kurang sama. Oleh itu, hanya satu keratan aturcara sahaja yang akan ditunjukkan di rajah 5.10 bahawa bagaimana berhubung dengan pangkalan data dan bagaimana mendapatkan data dari jadaul tertentu. Rajah 5.10 merupakan keratan aturcara untuk membuat perhubungan dengan pangkalan data. Rajah 5.11 merupakan keratan aturcara untuk mendapatkan data alamat dari jadual buku alamat.... //initialized connectionpool class String driver = "sun.jdbc.odbc.jdbcodbcdriver"; String url = "jdbc:odbc:project"; String username = ""; String password = ""; ConnectionPool addressbookconnectionpool; addressbookconnectionpool = new ConnectionPool(driver,url,userName, password,10, 50, true); //wait if busy Rajah 5.10 : Keratan aturcara untuk menghubung dengan pangkalan data.

74... con = addressbookconnectionpool.getconnection();... Vector v = jdbcutility.jdbcmultiplecolumnquery("select Address, Name, Phone FROM addressbook " + "WHERE IC = '" + ic + "'", con);... if (v.size() > 0) { for(int i=0; i<v.size();i++) { Vector vcol = (Vector)v.elementAt(i); queryaddress = (String)vCol.elementAt(0); queryname = (String)vCol.elementAt(1); queryphone = (String)vCol.elementAt(2); } }... Rajah 5.11 : Keratan aturcara untuk mendapatkan alamat dari jadual buku alamat 5.3 Data dan Hasil Input/Output Pengujian merupakan proses yang mesti dilakukan untuk setiap pembangunan sistem. Pengujian dilakukan bertujuan untuk mengenalpasti ralat yang ada pada sistem. Dengan kata lain, ia bertujuan untuk mengenalpasti sistem bebas daripada ralat dan memenuhi keperluan pengguna. Terdapat dua kaedah pengujian iaitu pengujian kekotak

75 hitam dan pengujian kekotak putih. Pengujian kekotak hitam fokus kepada pengujian pada antaramuka atau luaran. Pengujian kekotak putih fokus kepada logik kod aturcara. Pengujian kekotak hitam telah dipilih sebagai kaedah pengujian untuk projek ini. Pengujian ini telah dijalankan untuk semua antaramuka tetapi dalam dokumen ini hanya beberapa antaramuka yang penting difokuskan seperti antaramuka Sign In dan antaramuka penghantaran e-mel. Data yang digunakan untuk pengujian antaramuka Sign In adalah Id pengguna, iaitu s001 dan kata laluan pengguna. Output pengujian ialah nama pengguna. Rajah 5.12 menunjukkan contoh input dan rajah 5.13 merupakan output iaitu nama pengguna. Rajah 5.12 : Input pengujian 1

76 Nama pengguna Rajah 5.13 : Output pengujian 1 Data yang digunakan untuk pengujian antaramuka penghantaran e-mel adalah Nama host IMAP, nama akaun pengguna dan kata laluan. Rajah 5.14 menunjukkan contoh input dan rajah 5.15 merupakan output kegagalan membuka kotak mel di mana salah satu input adalah salah. Rajah 5.14 : Input pengujian 2

77 Rajah 5.15 : Output gagal bagi pengujian 2 5.4 Rumusan/Analisis Rumusan yang dapat dibuat pada bahagian implementasi ialah semua fungsi utama telah dikodkan dan berjalan dengan lancar serta memenuhi objektif projek. Implementasi yang telah dijalankan adalah berdasarkan rekabentuk yang telah dinyatakan dalam Bab 4. Kesemua rekabentuk telah diterjemah kepada aturcara, tetapi hanya sebahagian keratan kod yang penting sahaja yang didokumenkan ke dalam bahagian implementasi.

BAB 6 KESIMPULAN 6.1 Pengenalan Kesimpulan tentang sistem yang telah dibangunkan akan dibuat dalam bab ini. Kebaikan dan kelemahan sistem juga dibincangkan. Cadangan masa depan dikemukakan agar fungsi-fungsi sistem dapat diperbaiki serta ditambahkan pada masa depan. 6.2 Hasil Pencapaian Setelah menyiapkan projek ini, banyak perkara baru telah dipelajari dan difahami akan penggunaannya. Di antaranya adalah seperti berikut : - i. Mengetahui bahawa terdapat 2 jenis senibina mel yang berbeza di pasaran iaitu laman mel dan aplikasi mel.

79 ii. Memahami konsep perlaksanaan teknologi WebServices. iii. Memahami konsep perlaksanaan pelayan pelanggan. iv. Mengetahui cara mengkodkan pelayan berasaskan WebServices serta cara mengkodkan pelanggan e-mel untuk memanggil servis yang ada di pelayan. v. Mengetahui cara mengawal kerja mencetak. vi. Mengetahui dengan mendalam mengenai teknik membina halaman web dengan menggunakan JSP, Javascript dan CSS. 6.3 Kebaikan Sistem Kebaikan sistem yang telah dikenalpastikan adalah seperti berikut : - i. Sistem yang dihasilkan adalah berasakan Web Services di mana servis yang disediakan adalah mudah diguna oleh pelanggan lain. ii. Ia bukan sahaja boleh menyemak POP mel, ia juga boleh menyemak IMAP mel. iii. Penggunaan penapisan e-mel spam yang lebih cekap dengan mengimplementasi teori Bayesian Filtering di dalam proses penapisan spam iv. Penghantaran e-mel dapat dilakukan melalui pelayan SMTP yang memerlukan pengesahan terlebih dahulu. v. Sistem yang dihasilkan mempunyai antaramuka yang sedikit tetapi sempurna dan mudah diuruskan vi. Sistem ini menyediakan antaramuka bergrafik yang ramah pengguna.

80 6.4 Kelemahan Sistem Kelemahan sistem yang dikenalpastikan ialah : - i. Sistem mengimplementasikan sistem keselamatan yang minimum dengan merujuk akaun pengguna dan katalaluan sebagai kawalan capaian. ii. Sistem yang dibangunkan tidak dapat menghantar fail lampiran lebih daripada satu. iii. Pelayan hanya melayan satu pelanggan pada satu masa sahaja. iv. Tiada pengesanan virus bagi fail lampiran 6.4 Cadangan Pembaikan dihasilkan. Berikut adalah cadangan-cadangan bagi memperbaiki sistem yang telah i. Mengimplementasikan sistem keselamatan yang lebih kompleks untuk sistem seperti mengadakan kelas-kelas yang mengunakan teknik penyulitan (encryption) untuk menyulit mesej-mesej e-mel. ii. Mengadakan fungsi yang dapat menghantar fail lampiran lebih daripada satu. iii. Mengadakan kelas yang dapat menciptakan Thread baru supaya dapat melayan lebih daripada satu pelanggan pada satu masa. iv. Mengadakan fungsi pengesanan virus bagi fail lampiran.

81 6.5 Kesimpulan Tujuan pembangunan sistem ini adalah untuk meneroka teknologi Web Services serta mengimplementasikan kaedah penapisan e-mel spam. Secara keseluruhannya, hasil projek ini telah memenuhi objektif-objektif dan skop-skop yang telah ditetapkan. Di mana projek ini telah menyediakan satu sistem e- mel yang berasaskan web services supaya pelanggan e-mel yang mempunyai format yang berbeza dapat dikendalikan dengan mudah oleh satu pelayan. Di samping itu, projek ini juga telah menyediakan satu fungsi penapisan e-mel spam yang lebih berkualiti. Iaitu dapat menangkap spam e-mel dengan kesalahan positif yang minima. Walaubagaimanapun, dengan melalui tenaga, pengetahuan dan masa yang terhad, sistem yang dihasilkan mempunyai prestasi yang rendah dan tidak bebas ralat sepenuhnya. Oleh itu, projek ini masih mempunyai kelemahan-kelemahan yang perlu diperbaiki.

RUJUKAN 1. Paul Graham. ``A Plan for Spam.'' August 2002. http://www.paulgraham.com 2. Core J2ME Technology and MIDP http://www.corej2me.com 3. IMAP vs. POP Oregon State University College of Engineering revised: April 8, 2001. Accessed March 6, http://www,engr.orst.edu/computing/email/imapvpop.html 4. Bilal Siddiqui, Web Services Security for Java, October 28, 2003 http://webservices.xml.com 5. Java Web Services Tutorial http://java.sun.com/webservices/webservicestutorial.html 6. Patrick Pantel and Dekang Lin, SpamCop-- A Spam Classification & Organization Program.'' Proceedings of AAAI-98 Workshop on Learning for Text Categorization. http://www.isi.edu/~pantel/download/papers/aaai98.pdf

7. Ali Bahrami (1990). Object Oriented Systems Development using the unified modeling language McGraw-Hill International Editions. 8. Mohd Hanif bin Ibrahim, Pelanggan POP3 dengan Sistem Penapisan Spam Berasaskan Teknologi Servis Web, 2002/2003

LAMPIRAN A CARTA GANTT

ID Task Name Start Finish mber December January February 11/16 11/23 11/30 12/7 12/14 12/21 12/28 1/4 1/11 1/18 1/25 2/1 2/8 2/15 2/22 1 Projek 1 Mon 12/1/03 Fri 2/20/04 2 Fasa Perancangan Mon 12/1/03 Wed 12/17/03 3 Mencari penyelia dan tajuk projek Mon 12/1/03 Mon 12/8/03 4 Menentukan objektif, skop dan masalah Tue 12/9/03 Wed 12/17/03 5 6 Fasa Analisa Keperluan Fri 12/19/03 Wed 12/31/03 7 Pencarian Maklumat dan Rujukan Fri 12/19/03 Thu 12/25/03 8 Pengajian Sistem Yang Ada Fri 12/26/03 Sun 12/28/03 9 Pengajian Keperluan Sistem Fri 12/26/03 Mon 12/29/03 10 Pengajian Modul-modul Sistem Sun 12/28/03 Wed 12/31/03 11 12 Fasa Rekabentuk Fri 1/2/04 Tue 1/20/04 13 Menentukan Metodologi Fri 1/2/04 Mon 1/5/04 14 Menentukan Keperluan Sistem Tue 1/6/04 Thu 1/8/04 15 Menentukan Rekabentuk Sat 1/10/04 Thu 1/15/04 16 Rekabentuk Fri 1/16/04 Tue 1/20/04 17 18 Laporan Thu 1/29/04 Fri 2/20/04 19 Hantar Draf Laporan Thu 1/29/04 Thu 1/29/04 20 Penilaian Draf Laporan Oleh Penyelia Fri 1/30/04 Fri 2/6/04 21 Persembahan projek 1 Mon 2/16/04 Fri 2/20/04 Project: Project1 Date: Mon 3/28/05 Task Split Progress Milestone Summary Project Summary External Tasks External Milestone Deadline Page 1

ID Task Name Duration Start 1 Fasa Rekabentuk Sistem 19 days Mon 11/22/04 2 Merekabentuk hirarki sistem 10 days Mon 11/22/04 3 Merekabentuk semula hirarki sistem 9 days Fri 12/3/04 4 Fasa Pembangunan Sistem 49 days Sun 12/12/04 5 Pembangunan pelayan web logic 7 days Sun 12/12/04 6 Pembangunan JavaMail - muat turun mesej 7 days Sun 12/19/04 7 Pembangunan JavaMail - hantar mesej 7 days Sun 12/26/04 8 Pembangunan penapisan SPAM mel, hantar bab2 14 days Sun 1/2/05 9 Pembangunan fungsi-fungsi pekakasan telefon, ha 7 days Sun 1/16/05 10 Hantar bab 5 7 days Sun 1/23/05 11 Fasa Perlaksanaan Dan Penilaian 7 days Sun 1/30/05 12 Pegujian dan pembetulan sistem 7 days Sun 1/30/05 13 Penyediaan Laporan 2 days Sun 2/6/05 14 Pengemas Laporan 1 day Sun 2/6/05 15 Hantar Draf 1 day Mon 2/7/05 16 Pembentangan Projek 31 days Sat 2/26/05 17 Persediaan pembentangan 2 days Sat 2/26/05 18 Pembentangan 1 day Mon 2/28/05 19 Pembetulan draf laporan projek 10 days Thu 3/3/05 20 Penyerahan draf laporan selepas pembetulan 1 day Mon 3/14/05 21 Penyerahan laporan berjilid kepada fakulti 1 day Wed 3/30/05 vember December January February March April 11/7 11/21 12/5 12/19 1/2 1/16 1/30 2/13 2/27 3/13 3/27 4/10 Task Rolled Up Task External Tasks Project: psm2 Date: Mon 3/28/05 Progress Milestone Rolled Up Milestone Rolled Up Progress Project Summary Group By Summary Summary Split Page 83

LAMPIRAN B SENARAI RAJAH JUJUKAN

84 : Pelanggan menu 1. Pilih "Register" daripada Menu borang Pendaftaran pangkalandata (dbuser) 2. masuk maklumat pengguna serta nama akaun dan katalaluan 3. Membuat pengesahan supaya tiada rekod yang sama wujud 4. paparkan mesej berjaya atau gagal Lampiran B.1 Rajah Jujukan Bagi Pendaftaran

85 : Pelanggan menu pangkalandata (dbuser) 1. masukkan nama akaun dan katalaluan 2. mencari rekod 3. tidak sah, log masuk semula Lampiran B.2 Rajah Jujukan Bagi LogIn

86 : Pelanggan menu 1. masukkan nama host, nama akaun mel elektronik dan katalaluan : Pelayan Berasaskan WebServices petimelelektronik 2. memanggil servis dari pelayan untuk login ke dalam petimelelektornik 3. hantar nama akaun dan katalaluan kepada peti mel 4. tidak sah, log masuk semula 5. hantar mesej tidak sah, dan minta log masuk semula Lampiran B.3 Rajah Jujukan Bagi LogInPetiMelElektronik

87 : Pelanggan kotakmel halamanmel : Pelayan Berasaskan port 110 (POP) atau port 143 (IMAP) 1. Selepas log masuk sah, muat turun mesej : Peti Surat Elektronik 2. hantar mesej 3. paparkan kepala mesej 4. pilih mesej yang hendak dilihat 5. dapatkan mesej yang dipilih 6. paparkan mesej yang dipilih Lampiran B.4 Rajah Jujukan Bagi Muat Turun E-mel

88 : Pelanggan 1. log masuk sah, papar kotakmel halamanhantar Mel : Pelayan Berasaskan port 25 (pelayan SMTP) : Peti Surat Elektronik 2. pilih dan masuk ke halaman hantar e-mel 3. mesej atau fail lampiran dihantar 4. membuat pengesahan terhadap pelayan SMTP tertentu supaya dapat gunakan port 25 untuk menghantar e-mel 5. hantar e-mel Lampiran B.5 Rajah Jujukan Bagi Hantar E-mel

89 : Pelanggan 1. log masuk sah, papar kotakmel bukualamat pangkalandata (dbaddressbook) 2. pilih dan masuk ke buku alamat 3. lakukan aktiviti pengemaskinian 4. simpan Lampiran B.6 Rajah Jujukan Bagi Kemaskini Buku Alamat

90 : Pelanggan kotakmel 1. log masuk sah, papar bukualamatemelspam pangkalandata (dbspam) 2. pilih dan masuk ke buku alamat 3. lakukan aktiviti pengemaskinian 4. simpan Lampiran B.7 Rajah Jujukan Bagi Kemaskini Buku Alamat E-mel Spam

91 : Peti Surat Elektronik penapis pangkalandata (dbaddressbook) pangkalandata (dbspam) 1. mesej dimuat turunkan 2. alamat e-mel yang bukan spam dihantar supaya tiada ralat bahawa e-mel yang sah juga ditapis 3. alamat e-mel spam dihantar supaya menapis e-mel spam 4. membuat penapisan Lampiran B.8 Rajah Jujukan Bagi Penapisan Spam

92 : Pengurus kotakmel markahspam fail (spamscore) 1. Pengesahan sah, papar 2. pilih dan masuk, papar 3. lakukan aktiviti pengemaskinian 4. simpan Lampiran B.9 Rajah Jujukan Bagi Kemaskini Markah Spam

93 : Pengurus kotakmel failhitam pangkalandata (dbblacklist) 1. Pengesahan sah, papar 2. pilih dan masuk, papar 3. lakukan aktiviti pengemaskinian 4. simpan Lampiran B.10 Rajah Jujukan Bagi Kemaskini Fail Hitam

LAMPIRAN C PEMASANGAN PERISIAN

94 i. Microsoft Windows XP Professional Sistem yang dibangunkan akan dilarikan dalam persekitaran window XP professional. Maka pemasangan sistem pengoperasian ini merupakan langkah yang pertama untuk menbangunkan sistem. ii. JDK 1.4.1 Java diperlukan untuk mengkompil fail java yang telah dibangunkan. JDK boleh dimuat turun daripada halaman web http://java.sun.com. Selepas perisian ini dipasang, satu direktori akan dicipta di lokasi C:\j2sdk1.4.1_03. Sebelum menggunakan perisian ini, beberapa konfigurasi perlu dilakukan. Mula-mula, pengguna perlu klik pada tetingkap Environment Variable, untuk menambahkan PATH pada User Variable dengan C:\j2sdk1.4.1_03\bin. Ini akan menyebabkan sistem yang dibangunkan mengetahui fail yang diperlukan untuk dikompil terletak pada lokasi yang telah ditambah tersebut.

95 iii. Eclipse 3.0.1 Perisian ini merupakan satu penyunting untuk menuliskan bahasa pengaturcaraan Java pada bahagian server. Perisian ini boleh dimuat turun secara percuma dari halaman web http://www.eclipse.org. Fail yang dimuat turun merupakan satu zip fail. Untuk memulakan persisan tersebut, ekstarkkkan fail tersebut dan kemudian klip pada.exe fail yang terletak di dalam direktori eclipse. iv. BEA Weblogic Platform 8.1 Peisian ini boleh didapati secara percuma dari halaman web http://commerce.bea.com/ Selepas fail dimuat turun, klip pada exe fail yang ada dan proses permasangan perisian akan dijalankan. Selepas berjaya memasang perisian BEA Weblogic, konfigurasi terhadap perisian ini perlu dilakukan. Berikut merupakan langkah untuk melakukan konfigurasi perisian ini: i. Pergi ke Start -> All Programs -> BEA Weblogic Platform 8.1 -> Configuration Wizard dan memilih create a new Weblogic Configuration. Selepas itu, mengikut langkah yang diberikan untuk mencipta satu persekitaran supaya menghasilkan satu pelayan berasaskan web services. Nama bagi persekitaran baru ini, dinamakan sebagai mymail.

96 ii. iii. iv. Klip pada exe fail yang terletak pada C:\bea\user_projects\domains\mymail\startWebLogic.exe untuk memulakan server BEA Weblogic ini. Buka satu browse dan menaipkan http://localhost:7001/console untuk memasukkan bahagian pengurusan BEA Weblogic. Masukkan semula username dan password yang telah dicipta semasa pemasanga domain yang baru.

LAMPIRAN D MANUAL PENGGUNA

97 UNIVERSITI TEKNOLOGI MALAYSIA PELANGGAN E-MEL BERASASKAN WEB SERVICES-JAVA SERTA PENAPISAN SPAM Manual Pengguna

98 1.0 Manual Pengguna Lampiran C telah menerangkan cara pemasangan perisian sebelum menggunakan pelanggan e-mel. Akhirnya lampiran D ini menerangkan langkah-langkah untuk menggunakan pelanggan e-mel 1.0.1 Pendaftaran Akaun Baru Rajah seterusnya merupakan antaramuka pendaftaran, iaitu pengguna perlu mendaftarkan diri sebelum menggunakan pelanggan e-mel yang dihasilkan i. Mencapai halaman web sistem. ii. Daripada menu utama, pilih Register. iii. Memasukkan data-data yang diperlukan seperti rajah C.1

99 Rajah C.1 Antaramuka Pendaftaran 1.0.2 Log Masuk Selepas daftar, pengguna boleh memasukkan id pengguna dan kata laluan untuk menggunakan pelanggan e-mel. Rajah C.2 merupakan antarmuka Log masuk Rajah C.2 Antaramuka Log Masuk

100 1.0.3 Log Masuk Ke Dalam Akaun IMAP Mel Rajah C.3 berikutnya merupakan antaramuka log masuk ke dalam akaun IMAP mel pengguna dimana pengguna perlu memasukkan nama host IMAP, nama akaun pengguna dan kata laluan. Rajah C.3 Antaramuk LogIn ke dalam Akaun IMAP

101 1.0.4 Log Masuk Ke Dalam Akaun IMAP Mel Rajah C.4 seterusnya merupakan buku alamat bagi pengguna tersebut, di mana pengguna boleh memasukkan alamat yang baru, mengemaskini buku alamat dan menghapuskan alamat. i. Memasukkan data ke dalam kotak kosong yang ada untuk tujuan menambah rekod alamat ii. Menekan butang insert untuk menghantar data ke dalam pangkalan data. iii. Pilih edit untuk tujuan kemaskini dan delete untuk menghapuskan rekod. iv. Selepas pilih edit kotak kosong akan mempunyai data yang boleh dikemaskinikan.

102 Rajah C.4 Antaramuk Buku Alamat v. Menekan butang update untuk mengemakinikan data di dalam pangkalan data. Rajah C.5 merupakan antaramuka semasa membuat kemaskini. Rajah C.5 Antaramuka Mengemaskini Buku Alamat 1.0.5 Inbox Selepas berjaya masuk ke dalam akaun IMAP pengguna, antaramuka seperti rajah C.6 akan dipaparkan. Pengguna boleh menekan compose untuk menghantar e-mel kepada orang lain. Pengguna juga dapat melihat kandungan mesej yang ada dengan menekan perkataan yang berada dalam lajur subject. Kandungan mesej dipaparkan seperti rajah C.7

103 Rajah C.6 Antaramuka Folder Inbox Rajah C.7 Antaramuka Kandungan mesej

104 Pengguna boleh memuat turun fail lampiran dengan menekan Download Attachment. Apabila berjaya memuat turun, antaramuka seperti di rajah C.8 akan dipaparkan. Rajah C.8 Antaramuka Berjaya Memuat Turun Fail Lampiran 1.0.6 Antaramuka Pengurus Pengurus boleh menekan butang untuk mengubah markah spam, mengemaskinikan fail hitam dan melihat e-mel rekod. Rajah C.9 menunjukkan antaramuka pengurus.

105 Rajah C.9 Antaramuka Pengurus 1.0.7 Antaramuka Kemaskini Fail Hitam Pengurus boleh menambah dan menghapuskan perkataan. Apabila perkataan tersebut dikesan oleh penapis spam, e-mel tersebut dikenalikan sebagai e-mel spam. Rajah C.10 menunjukkan antaramuka kemaskini fail hitam. Rajah C.10 Antaramuka Kemaskini Fail Hitam

106 1.0.8 Antaramuka Kemaskini Markah Spam Pengurus boleh mengubah markah spam, supaya apabila markah pengesan spam lebih daripada markah spam, e-mel tesebut akan dikenali sebagai e-mel spam. Rajah C.11 menunjukkan antaramuka kemaskini markah spam Rajah C.11 Antaramuka Kemaskini Markah Spam 1.0.9 Peranti Mudah Alih 1. Rajah seterusnya menunjukkan fungsi yang terdapat di dalam sistem e-mel bagi peranti mudah alih yang boleh dicapai melalui pengguna. 2. Setelah login ke dalam sistem, pengguna boleh memilih samada untuk membaca e-mel yang ada atau menulis e-mel. Rajah C.12 menunjukkan antaramuka menu pilihan. 3. Jika pengguna memilih untuk membaca e-mel, rajah C.13 menunjukkan senarai tajuk e-mel yang dipaparkan. 4. Jika pengguna memilih untuk menulis e-mel, rajah C.14 menunjukkkan antaramuka untuk menulis mesej. Setelah menghantar e-mel, pengguna akan dikembalikan kepada menu.

107 Rajah C.12 Antaramuka Menu Rajah C.13 Antaramuka Senarai Tajuk E-mel

Rajah C.14 Antaramuka Menulis E-mel 108