You are on page 1of 15

1

ANALISIS DAN IMPLEMENTASI JAVA SOCKET PADA

EMAIL CLIENT

Naskah Publikasi

disusun oleh

Indah Wardini

07.12.2376

kepada
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
AMIKOM
YOGYAKARTA
2011
2
3

ANALYSIS AND IMPLEMENTATION JAVA SOCKET IN

EMAIL CLIENT

ANALISIS DAN IMPLEMENTASI JAVA SOCKET PADA

EMAIL CLIENT

Indah Wardini

Jurusan Sistem Informasi

STMIK AMIKOM YOGYAKARTA

ABSTRACT

The development of Java can not be separated from the development of the
Internet that already connects millions of computers in a single global network. This
network allows computers to communicate with each other. In general, all machines
connected to the Internet can be categorized into two types: servers and clients.
Machines that provide services on another machine called a server. The use ofsocket
programming enables communication between client and server. One simple example of
using socket programming is making a program to send email. The program is a form of
communication between client applications and servers.

The use of java socket on creating an email client application used to


communicate between client and server. Java programming language is very flexible
because it can run in different platforms because of the JVM (Java Virtual Machine). The
use of existing libraries, such as libraries Java Mail API support in making applications.
Internet connection for the delivery and retrieval of email from mail server.

The process of sending email using multiple protocols, including SMTP (Simple
Mail Transfer Protocol) and POP3 (Post Office Protocol version 3). Data transmission
(email) using SMTP (Simple Mail Transfer Protocol) and for decision-mail from the server
using POP3 protocol (Post Office Protocol version 3). To use the security protocol SSL
(Secure Socket Layer) libraries that already exist in the Java Mail API.

Keywords: Internet, Java, SMTP, POP3, Email Client, SSL, Java Mail API.
4

1. Pendahuluan

Email atau electronic mail merupakan layanan berupa pengiriman pesan teks
yang datanya diubah ke bentuk data elektronik dan dikirimkan melalui jaringan komputer.
SMTP (Simple Mail Transfer Protocol) merupakan protokol yang digunakan untuk
mengirim email, dan bekerja pada port 25. Pengiriman email dilakukan menggunakan
aplikasi MTA, misalnya kerio, mdaemon, sendmail, qmail, dan sebagainya. Protokol ini
merupakan protokol yang sekarang banyak dipakai oleh mail server (MTA) di internet.
POP3 (Post Office Protocol Version 3) adalah protokol yang digunakan untuk mengambil
surat elektronik (email) dari server email. Protokol ini sangat erat hubungannya dengan
protokol SMTP (Simple Mail Transfer Protocol) dimana protokol SMTP berguna untuk
mengirim surat elektronik dari komputer pengirim ke komputer server dari penerima.
Kemudian penerima mengambil surat elektronik yang dikirim dari server dengan
menggunakan protokol ini.
Socket adalah mekanisme komunikasi yang memungkinkan terjadinya pertukaran
data antar program atau proses baik dalam satu mesin maupun antar mesin. Komunikasi
socket terutama diciptakan untuk tujuan menjembatani komunikasi antara dua buah
program yang dijalankan pada mesin yang berbeda. Kelebihan lain dari komunikasi
socket adalah mampu menangani banyak klien sekaligus (multiple clients).
Penggunaan socket programming memungkinkan adanya komunikasi antara
client dan server. Salah satu contoh sederhana penggunaan socket programming adalah
pembuatan program untuk mengirim email. Program tersebut merupakan bentuk aplikasi
berupa komunikasi antara client dan server. Ketika seorang user (client) melakukan
koneksi ke server email, program akan membuka koneksi ke port yang diberikan,
sehingga server perlu membuka socket pada port tersebut dan “mendengarkan” koneksi
yang datang. Socket sendiri merupakan gabungan antara host-adress dan port adress.
Dalam hal ini socket digunakan untuk komunikasi antara client dan server.

2. Landasan Teori

2.1 E-mail (Elektronik Mail)

Electronic-Mail (E-Mail) merupakan aplikasi TCP/IP yang paling banyak


digunakan. Email adalah pesan yang terdiri atas kumpulan string ASCII dalam format
RFC 822 (dikembangkan tahun 1982). Sistem email yang beroperasi di atas jaringan
berbasis pada model store and forward. Sistem ini mengaplikasikan sebuah sistem
server email yang menerima, meneruskan, dan mengirimkan, serta menyimpan pesan-
5

pesan user, dimana user hanya perlu untuk mengkoneksikan komputer mereka ke dalam
jaringan. Email dapat dianalogikan dengan kotak surat yang ada di kantor pos sedangkan
server email dapat diibaratkan sebagai kantor pos. Dengan analogi ini sebuah mail server
dapar memiliki banyak account email yang ada didalamnya. Beberapa pengamat
mempertanyakanapakah teknologi Push mirip dengan e-mail dan bukanlah sesuatu yang
baru. Metode Listservs telah ada untuk pendistribusian pesan e-mail secara otomatis
tanpa harus user melakukan request. Pada dasarnya prinsip dari Listserv mirip dengan
teknologi push, teknologi Push mengijinkan distribusi informasi dan gambar yang lebih
kompleks dari apa yang dapat ditangani oleh e-mail dan dilakukan real-time dimana
sistem store and forwards dari e-mail tidak di-desain untuk itu. Cara kerja email dapat
dilihat pada Gambar 2.3.

Gambar 2.5 Cara kerja e-mail


E-mail yang dikirim belum tentu akan diteruskan ke komputer penerima (end
user), tapi disimpan/dikumpulkan dahulu dalam sebuah komputer server (host) yang akan
online secara terus menerus (continue) dengan media penyimpanan (storage) yang relatif
lebih besar dibanding computer biasa. Hal ini bisa diibaratkan dengan sebuah kantor pos,
jika sesorang mempunyai alamat (mailbox), maka dia dapat memeriksa secara berkala
jika dia mendapatkan surat. Komputer yang melayani penerimaan email secara terus-
1
menerus tersebut biasa disebut dengan mailserver atau mailhost .

2.2 SMTP (Simple Mail Transfer Protocol)

Merupakan salah satu protokol yang umum digunakan untuk pengiriman surat
elektronik di internet. Protokol ini dipergunakan untuk mengirimkan data dari komputer

1
Tri Aditya Sasongko. Idris Winarno dan Kholid Fathoni. Rancang Bangun Email Client pada
Perangkat Mobil, http://digilib.its.ac.id/public/ITS-Undergraduate-14635-paperpdf.pdf, diakses
tanggal 03 Agustus 2011.
6

pengirim surat elektronik ke server surat elektronik penerima. Protokol ini timbul karena
desain sistem surat elektronik yang mengharuskan adanya server surat elektronik yang
menampung sementara sampai surat elektronik diambil oleh penerima yang berhak.

2.3 POP3 (Post Office Protocol version 3)

Post Office Protocol version 3 (POP3) adalah protokol yang digunakan untuk
mengambil surat elektronik (email) dari server email protokol ini erat hubungannya
dengan protokol SMTP dimana protokol SMTP berguna untuk mengirim surat elektronik
dari komputer pengirim ke server. Protokol POP3 dibuat karena desain dari sistem surat
elektronik yang mengharuskan adanya server surat elektronik yang menampung surat
eletronik untuk sementara sampai surat elektronik tersebut diambil oleh penerima yang
berhak. Kehadiran server surat elektronik ini disebabkan kenyataan hanya sebagian kecil
dari komputer penerima surat elektronik yang terus menerus melakukan koneksi ke
jaringan internet. Protokol ini dispesifikasikan pada RFC 1939.

2.4 Secure Socket Layer

SSL atau Secure Sockets Layer adalah sebuah protokol keamanan data yang
digunakan untuk menjaga pengiriman data web server dan pengguna situs web. Untuk
mengetahui apabila transaksi diamankan oleh SSL adalah sebuah icon berlambangkan
gembok yang terkunci akan muncul di browser yang telah diamankan dengan SSL.
Dengan meng-klik icon tersebut akan diketahui otoritas sertifikasi dari sertifikat SSL
tersebut.

SSL dikembangkan oleh Netscape Communication pada tahun 1994. SSL


memiliki tiga versi yaitu 1.0, 2.0, dan 3.0 yang diliris pada tahun 1996. SSL merupakan
suatu standar teknologi keamanan yang menjamin bahwa seluruh data yang dilewatkan
antara web server dengan web browser terjaga kerahasiaan dan keutuhannya. SSL
membuat koneksi yang ter-enkripsi (tersandi) antara server atau situs dengan
pengunjungnya saat pengunjung itu mengaksesnya, sehingga data rahasia atau penting
bisa terkirim tanpa khawatir ada usaha perubahan ditengah jalannya. Tanpa enkripsi SSL
semua data yang dikirim lewat internet sangat mungkin dilihat oleh orang lain. SSL
bertindak sebagai protokol yang mengamankan komunikasi antara client dan server.
7

3 Analisis

Analisis sistem dapat didefinisikan sebagai berikut: penguraian dari suatu sistem
informasi yang utuh ke dalam bagian-bagian komponennya dengan maksud
mengidentifikannya dan mengevaluasi permasalahan-permasalahan, kesempatan-
kesempatan, hambatan-hambatan yang terjadi dan kebutuhan-kebutuhan yang
diharapkan sehingga dapat diusulkan perbaikan-perbaikannya.

Requirements bertujuan untuk mendeskripsikan apa yang harus dilakukan oleh


system. Terdapat dua jenis requirements yang harus dilakukan untuk menghasilkan
sebuah sistetem yang berkualitas, yaitu kebutuhan fungsional dan kebutuhan non-
fungsional.

3.1 Kebutuhan Fungsional

Beberapa kebutuhan fungsional pada aplikasi email client:

1. Terdapat pengaturan konfigurasi SMTP dan POP3.


2. Aplikasi dapat mengirim dan menerima email secara langsung.
3. Email yang sudah didownload disimpan ke dalam database.
4. Aplikasi dapat menyimpan alamat (address book).

3.2 Kebutuhan Non—Fungsional

Beberapa kebutuhan non-fungsional dalam aplikasi yang dibangun adalah:

1. Koneksi internet (modem, DSL, wifi).


2. JRE (Java Runtime Environment).

4 Hasil Penelitian dan Pembahasan

4.1 Pembuatan Program

Pada tahap ini dilakukan pembuatan program aplikasi Email Client. Tahap
pembuatan program pada aplikasi ini adalah sebagai berikut:
8

4.1.1 Pembuatan Form dan Coding Program

Form tampilan dari aplikasi email client antara lain sebagai berikut:

Gambar 4.1 Tampilan awal email client

public class SendController {

private SendModel model;

public void setModel(SendModel model) {

this.model = model;

public void resetSend(NewMessageView view){

model.resetSend();

public void resetSend(SendView view){

model.resetSend();

public void insertSend(NewMessageView view){


9

String to = view.getTxtTo().getText();

String cc = view.getTxtCc().getText();

String bcc = view.getTxtBcc().getText();

String subject = view.getTxtSubject().getText();

String attachment = view.getTxtAttachment().getText();

String message = view.getTxtMessage().getText();

model.setToEmail(to);

model.setCc(cc);

model.setBcc(bcc);

model.setSubject(subject);

model.setAttachment(attachment);

model.setMessage(message);

try{

model.insertSend();

// JOptionPane.showMessageDialog(view, "Message have been save to outbox");

}catch(Throwable throwable){

JOptionPane.showMessageDialog(view, new Object[]{

"Have error in database with message: ", throwable.getMessage()

});

Class yang digunakan untuk proses pengiriman yang diimplementasikan pada form send.
Method insertSend mengimplementasikan class SendModel untuk proses pengiriman
email.
10

4.1.2 Koneksi Server

Penggalan source code untuk koneksi ke server adalah sebagai berikut :

a. Koneksi ke server

public void sendEmail(Email email){

Session session = Session.getInstance(this.configuration.getProperties(),


auth);

try{

Message msg = this.buildEmailMessage(session, email);

Transport.send(msg);

}catch (MessagingException e){

throw new RuntimeException(e);

private Message buildEmailMessage(Session session, Email email) throws


MessagingException{

Message msg = new MimeMessage(session);

msg.setSubject(email.getSubject());

this.addRecievers(msg, email);

Multipart multipart = new MimeMultipart();

this.addMessageBodyPart(multipart, email);

this.addAttachments(multipart, email);

msg.setContent(multipart);

return msg;

Penggalan methode diatas digunakan untuk mengirimkan email ke server email, dengan
methode buildEmailMessage untuk menyusun isi email (body email).
11

b. Authenticator

class SMTPAuthenticator extends javax.mail.Authenticator{

private String username;

private String password;

public SMTPAuthenticator(String username, String password) {

this.username = username;

this.password = password;

@Override

public PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(username, password);

Class diatas sebagai authentifikasi ke server email sebelum proses pengiriman email,
meliputi authentifikasi user dan email. Menggunakan method getPasswordAuthentication
yang mengembalikan nilai (user dan password).

4.2 Pengujian Sistem

Uji coba program atau testing adalah sebuah proses terhadap program atau
aplikasi untuk menemukan kesalahan dan segala kemungkinan yang akan menimbulkan
kesalahan sesuai dengan spesifikasi software yang telah ditentukan sebelum aplikasi
tersebut digunakan. Metode testing ada dua, antara lain :

4.2.1 Black Box Testing

Pengujian yang dilakukan untuk antarmuka perangkat lunak. Pengujian ini


dilakukan untuk memperlihatkan bahwa fungsi-fungsi bekerja dengan baik dalam arti
masukan yang diterima dengan benar dan keluaran yang dihasilkan benar-benar tepat,
pengintegrasian dari eksternal data berjalan dengan baik. Salah satu bentuk Black Box
testing adalah testing validasi.
12

Testing ini dinyatakan berhasil jika fungsi-fungsi yang ada pada perangkat lunak sesuai
dengan apa yang diharapkan. Contoh testing validasai, saat proses pengiriman pesan ke
alamat email tertentu berhasil akan muncul besan “Message have sent” pada dialog.
Berikut contoh tampilannya.

Gambar 4.2 Contoh black box testing

Tabel 4.1 Tabel hasil pengujian Black Box Testing

No Fitur Status
1 Pengiriman pesan (new Message) Berhasil mengirimkan
pesan kepada alamat
yang dituju
2 Download pesan (inbox) Berhasil
3 Reply Berhasil
4 Address Book Berhasil menyimpan
menghapus, update
alamat.
5 Smtp configuration Berhasil, field bias diakses
sebagi properties dalam
proses pengiriman email
6 Pop Configuration Berhasil, field bias diakses
sebagi properties dalam
proses download email
13

4.2.2 White box testing

Pengujian yang dilakukan lebih dekat lagi untuk menguji prosedur-prosedur yang
ada. Lintasan logik yang dilalui oleh setiap bagian prosedur diuji dengan memberikan
kondisi yang spesifik. Salah satu contoh white box testing ialah disaat user memasukkan
alamat email pada address book dan salah dalam penulisan (tidak lengkap) maka tidak
bisa memasukkan alamat. Alamat ini digunakan pada saat user akan mengirimkan email
pada alamat yang sudah ada pada address book.

Gambar 4.3 Contoh white box testing


14

5 Kesimpulan

Dari uraian penjelasan pembahasan keseluruhan materi pada bab-bab


sebelumnya, email client mempermudah dalam proses pengiriman maupun penerimaan
pesan. Secara lebih rinci dapat diambil kesimpulan sebagai berikut:

1. Java socket digunakan dalam komunikasi antara client dan server, dalam hal ini
menggunakan SSL yang telah disediakan oleh library JavaMail API.
2. Mengetahui proses pengiriman surat elektronik (email) dari user ke server.
3. Proses pengambilan (download) pesan dari server mail ke database bisa
diketahui dan dimengerti.
4. Penyimpanan pesan ke dalam database bisa ditangani.
5. Dengan adanya prototype email client ini diharapkan bisa dimanfaatkan untuk
perancangan aplikasi email yang lebih sempurna dan sebagai pondasi dalam
perancangan aplikasi yang menerapkan java socket.
15

DAFTAR PUSTAKA

Java SE tips. 2005. How to create an e-mail client in Java. http://www.java-tips.org/java-


se-tips/javax.swing/how-to-create-an-e-mail-client-in-java.html, diakses tanggal 1
Januari 2011.

Kusnadi. 2011. Pemrograman Socket, http://www.scribd.com/doc/48135346/tutorial1,


diakses tanggal 18 Januari 2011.

Nugroho, Adi. 2009. Rekayasa Perangkat Lunak Menggunakan UML dan Java.
Yogyakarta : Andi.

Oracle. 2011. About the Java Technology.


http://download.oracle.com/javase/tutorial/getStarted/intro/definition.html, diakses
tanggal 1 Januari 2011.

Oracle. 2011. Java Mail.http://www.oracle.com/technetwork/java/javamail/index-


138643.html, diakses tanggal 21 Januari 2011.

Sasongko, Tri Aditya. Idris Winarno dan Kholid Fathoni. Rancang Bangun Email Client
pada Perangkat Mobil, http://digilib.its.ac.id/public/ITS-Undergraduate-14635-
paperpdf.pdf, diakses tanggal 03 Agustus 2011.

Soetanto, Agus. Aplication Of Simulation Algorithm Prim And Kruskal Implementation In


Search Route Around Campus At Gunadarma
University.http://papers.gunadarma.ac.id/index.php/industry/article/viewFile/1066
6/10211, diakses tanggal 03 April 2011.

Wikipedia. 2011. UML. http://id.wikipedia.org/wiki/UML, diakses tanggal 10 Januari 2011.

You might also like