Seminar Nasional Pengaplikasian Telematika SINAPTIKA 2010 – ISSN 2086-8251
Perancangan dan Implementasi Mobile Email Kurniawan1, Abdusy Syarif 2 Teknik Informatika, Fakultas Ilmu Komputer, Universitas Mercu Buana Jl. Raya Meruya Selatan, Kembangan, Jakarta, 11650 E-mail :
[email protected],
[email protected] Abstrak -- Sumber daya Internet yang paling penting dan paling banyak dipakai adalah surat elektronik atau yang lebih dikenal dengan sebutan email. Dengan menggunakan email, setiap orang di Internet dapat mentransmisikan suatu pesan teks ke siapapun juga yang ada di Internet. Untuk membaca dan mengirim email kebanyakan orang masih dibatasi oleh keadaan dimana untuk membaca dan mengirim email orang harus menggunakan komputer dan melakukan koneksi ke jaringan internet, hal ini cukup merepotkan jika suatu saat dihadapkan pada suatu keadaan dimana pengguna harus membaca dan mengirim email tetapi tidak tersedia komputer dan jarigan internet. Saat ini hampir sebagian besar orang di Indonesia memiliki telepon selular. Namun tidak semua telepon selular tersebut dilengkapi fitur aplikasi email client. Tujuan penelitian ini adalah membuat aplikasi email client yang dapat dijalankan pada telepon seluler dengan menimplementasikan protocol SMTP dan POP3.Tidak sekedar email client menggunakan J2ME namun juga email server turut dibangun. Hasil pengujian dengan menggunakan emulator bahwa email client untuk perangkat mobile dapat dibangun dengan fitur yang hampir sama dengan aplikasi email desktop dan bahkan dapat menghemat penggunaan bandwidth.
email ini dengan syarat handphone mereka mendukung teknologi Java dan berada masih terjangkau oleh penyedia layanan komunikasi selular yang digunakan oleh pengguna Tujuan penulisan laporan penelitian ini adalah sebagai berikut : 1. Untuk mengetahui lebih lanjut cara kerja pengiriman email mengunakan protokol SMTP (Simple Mail Transfer Protocol) dan mengambil email dari server dengan menggunakan protokol POP3 (Post Office Protocol Versi 3). 2. Untuk mempelajari pemrograman jaringan pada perangkat mobile khususnya handphone. 3. Membuat aplikasi email klien pada handphone.
Kata kunci : Mobile Email, SMTP, POP3
Pada penelitian ini, penulis menggunakan pendekatan berorientasi objek, mengingat contohcontoh program beserta pembahasannya telah tersedia dalam jumlah yang cukup banyak di Internet. Sedangkan metode rancang bangun perangkat lunak yang dipergunakan dalam peneltian ini adalah tahaptahap rancang bangun dari Ian Sommerville, yaitu: 1.Requirement definition 2.System and software design 3.Implementation and unit testing 4.Integration and system testing 5.Operation and maintenance Dalam penelitian ini, hanya tahap pertama hingga tahap ketiga yang dipergunakan. Tahap keempat dan kelima tidak dilaksanakan di dalam penelitian ini.
Batasan masalah pada penelitian ini adalah sebagai berikut : 1. Bagaimana pesan teks dikirim dan diterima menggunakan protokol SMTP (Simple Mail Transfer Protocol) dan POP3 (Post Office Protocol Versi 3). 2. Perancangan dan Implementasi aplikasi Mobile Email dengan menggunakan Java2 Micro Edition (J2ME). 3. Kartu seluler yang digunakan oleh pengguna menyediakan layanan GPRS. II. METODOLOGI PENELITIAN
I. PENDAHULUAN Saat ini kemajuan teknologi handphone telah semakin canggih, handphone sudah dapat melakukan koneksi ke jarigan internet dengna wireless dan kebutuhan untuk mendapatkan informasi kapan saja dan dimana saja semakin meningkat maka pembuatan aplikasi mobile email ini akan mempermudah pengguna handphone untuk mengirim dan membaca email melalui handphone. Sehingga untuk membaca email dan mengirim email tidak harus berada didepan komputer, kapan dan dimanapun pengguna dapat mengirim dan membaca email melalui handphone dengan aplikasi mobile 32
Seminar Nasional Pengaplikasian Telematika SINAPTIKA 2010 – ISSN 2086-8251
Sedangkan keseluruhan menggunakan J2ME.
aplikasi
dibangun
2.4 Connector dan Connections
2.1 Perangkat Mobile Perangkat mobile memiliki banyak jenis dalam hal ukuran, desain dan layout, tetapi mereka memiliki kesamaan karakteristik yang sangat berbeda dari sistem desktop. - Ukuran yang kecil - Memory yang terbatas - Daya proses yang terbatas - Mengkonsumsi daya yang rendah - Kuat dan dapat diandalkan - Konektivitas yang terbatas - Masa hidup yang pendek
Gambar 3. Menunjukkan langkah-langkah membuat koneksi dan menggunakannya. Penjelelasan Gambar 3 adalah sebagai berikut : 1. Aplikasi meminta kelas Connector untuk membuka dan mengembalikan sebuah resource jaringan. 2. Metode Connector.open() mengirimkan URI dan mengembalikan sebuah objek Connection. Objek Connection menangani referensi untuk input dan output stream untuk sumber daya jaringan. 3. Aplikasi mendapatkan objek InputStream atau objek OutputStream dari objek Connection. 4. Aplikasi membaca dari InputStream atau OutputStream sebagai bagian dari proses. 5. Aplikasi menutup Connection ketika selesai.
2.2 Koneksi Jaringan Aplikasi MIDP menggunakan tipe javax.microedition.io untuk membaca dan memanipulasi bermacam jenis koneksi jaringan. Aplikasi MIDP membaca dan menuliskan koneksi menggunakan tipe didalam paket MIDP java.io, dimana terdapat sebuah bagian dari kelas dan interface didalam paket J2SE java.io. 2.3 Generic Connection Framework Generic Connection Framework (GCF) menyediakan API dasar untuk koneksi dalam CLDC. Framework ini menyediakan suatu pondasi umum untuk koneksi seperti HTTP, Socket, dan Datagrams. GCF menyediakan suatu set API yang umum dan biasa yang memisahkan semua jenis koneksi. Perlu dicatat bahwa tidak semua jenis koneksi dibutuhkan untuk diterapkan oleh perangkat MIDP.
III. ANALISA DAN PERANCANGAN Pada bagian ini akan dijelaskan tentang bagaimana pesan dikirim dan diterima menggunakan protokol SMTP dan POP, serta perancangan aplikasi Mobile Email. 3.1 Gambaran E-mail Internet Sistem e-mail internet menggunakan TCP sebagai layer transportnya dan merupakan aplikasi klien/server. Pada LAN biasa, e-mail internet melibatkan tiga langkah terpisah yaitu : 1. Klien mengirim pesan dengan menggunakan SMTP (Simple Mail Transport Protocol). 2. Klien menerima pesan dengan menggunakan POP3 (Post Office Protocol, versi 3) 3. Server mengirim dan menerima pesan dari server lain menggunakan SMTP Karena itu SMTP digunakan dimanapun kecuali oleh klien yang menggambil mail -nya dari server (atau server ISP)-nya sendiri. Semua e-mail di internet dikirim dengan menggunakan SMTP.
Gambar 2. Hirarki koneksi Generic Connection Framework
33
Seminar Nasional Pengaplikasian Telematika SINAPTIKA 2010 – ISSN 2086-8251
Klien memberikan alamat email pengirim, dan server meberitahukan hal itu, di akhiri dengan kode 250 RCPT TO:<
[email protected]> Klien memberikan alamat email resipien (RCPT singkatan dari recipent) dan jika server dapat mengirimkan (atau menerima) pesan untuk resipien tersebut, maka server memberitahukan secara jelas dengan baris 250. DATA Ini memperkenalkan awal “mail data”, yaitu isi pesan yang dikirim, Server memberitahukan dengan 354 (jawaban “intermediate”, yaitu “I expect more to follow but it's OK so far”). Pada titik ini klien telah mengatakan pada server siapa kliennya, dan alamat yang yang akan dikirimi pesan oleh server. Dalam terminologi SMTP semua informasi ini membentuk envelope (amplop). Yang terdapat setelah perintah DATA ekuivalen dengan surat itu sendiri, From: “kurniawan”
Dalam bagian ini dan dua baris berikutnya klien menentukan header line untuk muncul dalam pesan mail sesungguhnya yang akan di terima resipien. Header from mengidentifikasikan pengirim. to: <[email protected]> Header ini menentukan resipien yang akan ditampilkan dalam header pesan tersebut Subject: Testing… Ini adalah baris header subject Tesing Kirim Email pake telnet nih...,
Gambar 4. Protokol Email 3.2 Analisa Mengirim Email Untuk memahami level dasar sistem mail bekerja penulis menggunakan telnet sebagai klien e-mail untuk mengirimkan suatu pesan.: Dalam sesi telnet berikut menampilkan respon dari server. Terlihat “percakapan” SMTP antara klien dan server yang terdiri dari perintah dan respon dalam teks sederhana.
Bye… Baris diatas adalah body dari pesan tersebut. . Tanda titik pada awal baris dan tidak diikuti apa pun mengindentifikasikan bahwa kita telah selesai mengisi baris body. Server menjawab dengan barsi kode 250, menyatakan pesan telah diterima.
Gambar 5. Capture Mengirim Email Capture diatas mengirimkan pesan dari user [email protected] ke user [email protected] telnet mail.infosemu2.com 25 Dari listing diatas terlihat suse telnet ke mail.infosemu2.com, untuk terkoneksi ke server SMTP yang kita harap mendengarkan di port 25. Kemudian server menjawab dengan salamnya, yang di akhiri dengan kode 220. semua kode respon SMTP terdiri dari tiga digit, dibagi dalam empat kelas: 2xx: OK – semua baik 3xx: server meminta Anda mengirim data 4xx: kesalahan sementara. Jika pengirim mencoba lagi mungkin lain kali akan bekerja dengan benar. 5xx: kesalahan permanen. Jika pengirim mencoba lagi. Kesalahan yang sama akan terjadi lagi. EHLO localhost EHLO (Extended Hello) ini mengidentifikasikan client ke server. MAIL FROM:
4.
Analisa Klien dan Server POP3
Gambar 6. Bagaimana POP klien menerima sebuah pesan Gambar 6 menunjukan aliran pesan untuk situs tertentu. Pesan masuk di terima oleh server SMTP,
34
Seminar Nasional Pengaplikasian Telematika SINAPTIKA 2010 – ISSN 2086-8251
bukan server POP, sekalipun keduanya berada pada mesin yang sama, dan suatu aplikasi software yang mungkin menyertakan kedua komponen tersebut. Server POP memiliki tiga fungsi : 1. Mentransfer pesan dengan cara entah bagaimana, dari server SMTP yang menerima email masuk untuk user kita. 2. Mengatur penyimpanan pesan baru, menyisipkan pesan baru, dan mengekstrak pesan darinya saat user terhubung ke server ini untuk mengambil pesan. 3. Menangani koneksi antar klien dan berpartisipasi dalam dialog POP. Sebagaimana halnya dengan SMTP, alamat server POP yang digunakan adalah bagian dari konfigurasi klien email. Seperti SMTP, POP menggunakan TCP untuk networking-nya, dan menggunakan perintah dan respon teks. Ini berarti kita dapat menggunakan telnet sebagai klien POP untuk berinteraksi dengan server POP. Baris respon server yang mulai dengan +OK mengindikasikan perintah terakhir yang telah diberikan sukses, jika perintah gagal baris tersebut dimulai dengan -ERR.
Login sebagai usser [email protected], server menjawab OK dan meminta password untuk user [email protected]. pass 123456 Memberikan password dengan password 123456 LIST Perintah LIST akan memperlihatkan informasi tentang pesan pada mailbox, Ada dua pesan dan ukuran masing-masig pesan dalam byte. RETR 2 Memanggil pesan 2. Server mengkonrfimasi bahwa pesan OK dan memberitahukan panjang pesan dalam byte. Server lalu mencetak pesan dan mengindikasikan akhir pesan dengan sebuah baris yang hanya berisi satu period. QUIT Selesai, server mengatakan ia akan keluar dari koneksi dan TCP akan diterminasi. 4. Perancangan Aplikasi Mobile Email Aplikasi Mobile Email adalah aplikasi email client yang berjalan pada handphone yang telah mendukung tekhnologi Java minimal MIDP 1.0 dan CLDC 1.0. Dengan aplikasi Mobile Email yang dibuat ini pengguna dapat membaca email yang ada di mailbox pengguna, dan mengirimkan email melalui handphone. Use Case Diagram Aplikasi Mobile Email Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah ”apa” yang diperbuat oleh sistem dan bukan ”bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem.
Gambar 8. Use Case Diagram Aplikasi Mobile Email Gambar 7. Capture membaca email menggunakan telnet
Skenario dan Sequence Diagram Aplikasi Mobile Email Pada aplikasi Mobile Email ini terdapat tiga menu utama yaitu Preferences, Inbox, dan Send Email. Skenario mengisi atau memperbarui preferences : Penguna menekan menu preferences lalu aplikasi menampilkan form untuk mengisi atau memperbarui alamat email, username, password, POP3 server dan SMTP server, jika sebelumnya pengguna telah mengisi email accountnya pada menu preferences ini
telnet mail.infosemu2.com 110 Dari listing diatas terlihat suse telnet ke suse.linux, untuk terkoneksi ke server POP yang mendengarkan di well-known port 110. lalu server menjawab dengan bannernya. user [email protected]
35
Seminar Nasional Pengaplikasian Telematika SINAPTIKA 2010 – ISSN 2086-8251
maka form yang tampil akan terisi dengan data email account yang pernah diisi sebelumnya, jika pengguna belum pernah mengisi email account pada menu preferences ini maka yang akan tampil adalah form kosong, setelah form diisi atau diperbarui, pengguna memilih tombol save untuk menyimpannya atau cancel untuk membatalkannya. Jika penguna memilih menu save maka aplikasi Mobile Email akan menyimpan informasi. Skenario membaca email : Pengguna menekan menu Inbox, jika pengguna belum mengisi username atau password, atau alamat POP server maka aplikasi akan menampilkan pesan pengguna harus mengisi username, password, dan alamat POP server pada menu preferences, jika pengguna sudah mengisi username, password, dan alamat POP server pada menu preferences, lalu aplikasi Mobile Email akan melakukan koneksi ke POP server dengan password, username, dan alamat POP server yang telah di masukan pada menu preferences.
dikirim, subjek email, isi email. Setelah pengguna selesai mengisi form tersebut pengguna dapat menekan tombol send. Selanjutnya aplikasi mobile email akan melakukan koneksi ke SMTP server (Informasi SMTP server telah diisi oleh pengguna pada menu setting). Setelah berhasil melakukan koneksi ke SMTP server aplikasi mobile email akan melakukan login ke dengan account name dan password yang telah di isi pada menu preferences. Setelah berhasil login selanjutnya aplikasi mabile email akan mengirimkan pesan ke SMTP server. Setelah berhasil mengirimkan pesan mobile email akan menampilkan pesan kepada pengguna bahwa pesan telah berhasil di kirim.
Gambar 10. Sequence diagram membaca email Gambar 9. Sequence diagram mengisi Preferences
Kelas yang membentuk aplikasi Mobile Email adalah : Connection Tanggung jawab dari kelas Connection ini adalah melakukan komunikasi dengan email sever, koneksi yang digunakan adalah koneksi socket yang merupakan bagian dari paket Generic Connection Framework javax.microedition.io. InboxClient Tanggung jawab dari kelas InboxClient adalah mengakses mailbox pengguna. Mengunduh (men-download) email pengguna. Inbox Tanggung jawab dari kelas Inbox ini adalah menerima perintah yang diberikan oleh pengguna ke system, event yang mungkin di berikan oleh pengguna adalah melihat daftar email yang ada di mailbox pengguna dan
Jika berhasil melakukan koneksi ke POP server maka POP server akan memberikan jawaban dan mengirimkan daftar email yang ada di inbox pengguna. Selanjutnya aplikasi Mobile Email akan menampilkan daftar email tersebut ke layar. Untuk membaca pesan secara lengkap penguna dapat memilih pesan yang akan di baca dan menekan tombol read, selanjutnya aplikasi akan melakukan koneksi ke POP server dan meminta detil email yang telah di pilih oleh pengguna. POP server akan mengirimkan detil email yang diminta, selajutnya aplikasi Mobile Email menampilkannya ke layar. Gambar 10 adalah diagram sekuen dari skenario membaca email. Skenario mengirim email : Pengguna menekan menu Send Email, lalu aplikasi Mobile Email akan menampilkan form isian untuk diisi oleh pengguna, pada form yang tampil dilayar tersebut pengguna dapat menuliskan kepada siapa email tersebut 36
Seminar Nasional Pengaplikasian Telematika SINAPTIKA 2010 – ISSN 2086-8251
membaca email yang telah dipilih dari daftar email yang ditampilkan oleh. InboxScreen Tanggung jawab dari kelas InboxScreen ini adalah menampilkan daftar email yang ada di mailbox pengguna. ReadScreen Tanggung jawab dari kelas ReadScreen ini adalah menampilkan detil email yang dipilih oleh pengguna. SmtpClient Tanggung jawab dari SmtpClient ini adalah mengirimkan email ke SMTP server. SmtpScreen Tanggung jawa dari SmtpScreen ini adalah menampilkan form kepada pengguna untuk mengetik email yang ingin dikirim oleh pengguna. MimeDecoder Tanggung jawab dari Kelas MimeDecoder adalah menterjemahkan MIME data dari sebuah email. Message Tanggung jawab dari kelas Message ini memproses data yang diterima melalui koneksi internet dan memyimpannya dalam array. Pada dasarnya kelas ini terdiri dari dua bagian. Bagian yang menangani Header email dan bagaian yang menangani body email. Preferences Tanggung jawab kelas Preferences untuk menyimpan informasi username, password, alamat POP3 server, alamat SMTP server, dan alamat email pengguna kedalam RMS(Record Management System), dan mengambil informasi username, password, alamat POP3 server, alamat SMTP server, dan alamat email pengguna dari RMS(Record Management System). PreferencesScreen Tanggung jawab dari kelas PreferencesScreen ini adalah menampilkan form untuk mengisi informasi username, password, alamat POP3 server, alamat SMTP server, dan alamat email pengguna, jika sebelumnya pengguna sudah pernah mengisi informasi username, password, alamat POP3 server, alamat SMTP server, dan alamat email pengguna maka form akan terisi dengan informasi yang pernah disimpan dalam RMS
Gambar 12 adalah tampilan form untuk mengisi email account, form ini akan tampil ketika pengguna menekan menu Preferences, untuk menyimpan informasi yang telah di ketik pengguna dapat menekan tombol Simpan lalu aplikasi akan menyimpan informasi yang telah diketik oleh pengguna. Untuk keluar dari form Preferences tanpa menyimpan informasi yang telah dirubah pengguna dapat menekan tombol keluar lalu aplikasi akan kembali ke menu awal. Gambar 13a adalah tampilan daftar email yang ada di Inbox pengguna, untuk membacanya pengguna dapat memilih email yang ingin dibaca dan menekan tombol menu lalu akan muncul daftar menu lalu pilih menu Baca. Gambar 13b adalah gambar tampilan form untuk mengirim email, pada form tersebut terdapat field untuk siapa email akan di kirim, subjek email dan body email setelah mengisi field-field tersebut pengguna dapat menekan tombol menu dan memilih menu kirim selanjutnya aplikasi akan mengirimkan email tersebut.
Gambar 12. Tampilan from untuk mengisi email account.
IV. HASIL DAN PEMBAHASAN Uji coba yang dilakukan dengan menggunakan emulator dari IDE Netbeans, email server yang digunakan sebagai uji coba adalah mail.infosemu2.com.
Gambar 13.(a) Tampilan daftar email yang ada di mailbox pengguna dan (b) mengirim email
37
Seminar Nasional Pengaplikasian Telematika SINAPTIKA 2010 – ISSN 2086-8251
V. PENUTUP Seperti yang telah diuraikan sebelumnya, penulis menyimpulkan : 1. Untuk melakukan koneksi ke email server penulis menggunakan koneksi socket yang merupakan bagian dari paket Generic Connection Framework javax.microedition.io. 2. Untuk pengiriman email dengan aplikasi Mobile Email, jika penulisan pesan sangat panjang maka terasa tidak senyaman penulisan pesan dengan komputer. Hal ini disebabkan karena keyboard pada handphone tidak sama dengan keyboard pada komputer. 3. MobileEmail lebih menghemat bandwith dibandingkan dengan email klien berbasis web, alasannya adalah sebagai berikut: Pada aplikasi email klien berbasis web, tampilan (User Interface) dibuat disisi server, sehingga data yang datang server adalah data email dan data tampilan (User Interface). Pada aplikasi Mobile Email ini, tampilan (User Interface) sudah tersedia pada aplikasi Mobile Email sehingga data yang datang dari server adalah benar-benar data email tanpa modifikasi. Aplikasi Mobile Email ini masi dapat dikembangkan lebih luas lagi, yaitu: 1. Dapat mengirim dan menampilkan email dalam format HTML. 2. Dapat mengirim dan menampilkan email dalam format gambar. 3. Dapat menghapus email. 4. Pengguna dapat melakukan pengaturan, apakah ingin menampilkan email yang pernah dibaca atau tidak, saat ini aplikasi Mobile Email akan menampilkan seluruh daftar email termasuk yang pernah dibaca hal ini akan mempersulit untuk membaca email dan menambah biaya semakin mahal jika email pengguna sudah banyak. 5. Aplikasi Mobile Email dapat berjalan di belakang layar, sehingga jika ada pesan baru akan tampil informasi bahwa ada email yang baru.
[3] [4] [5]
[6]
[7]
DAFTAR PUSTAKA [1] Mansfield, Niall. 2004. Practical TCP/IP: Mendesain, Menggunakan dan Troubleshooting Jarigan TCP/IP di Linux dan Windows. Terjemahan oleh Dwi Prabantini dari Practical TCP/IP, Designing, Using and Troubleshooting TCP/IP Networks on Linux and Windows. Indonesia: Penerbit Andi. [2] Whitten, Jeffery L. dkk. 2004. Metode Desain & Analisis Sistem edisi 6. Terjemahan Oleh Tim
38
Penerjemah Andi dari System Analysis and Design Methods. Indonesia: Penerbit Andi Shalahuddin, M dkk. 2006. Pemrograman J2ME. Bandung: Informatika Bandung. Kadir, Abdul. 2005. Dasar Pemrograman java 2. Yogyakarta: Penerbit Andi. Fowler, Martin. 2005. UML Distilled edisi 3, Panduan Singkat Bahasa Pemodelan Objek Standar. Terjemahan Oleh Tim Penerjemah Andi dari UML Distilled, 3th Ed., A Brief Guide to the standard Object Modeling Language. Indonesia: Penerbit Andi Piroumian, Vartan. 2002. Wireless J2ME™ Platform Programming. Indianapolis : Prentice Hall PTR. Yuan, Michael Juntao. 2003. Enterprise J2ME: Developing Mobile Java Applications. Indianapolis : Prentice Hall PTR.