8
BAB 2
LANDASAN TEORI
2.1 Jaringan Komputer dan Protokol Komunikasi
Tujuan dari komunikasi data adalah untuk bertukar informasi antara dua pihak
(Stallings,2004,p4). Informasi adalah arti yang dimiliki data sebagai akibat
dari
persetujuan yang diterapkan pada data tersebut, sedangkan data merupakan representasi
dari fakta-fakta, konsep-konsep, atau instruksi-instruksi dengan suatu cara formal
yang
sesuai  untuk  komunikasi, 
interpretasi,  atau  pemrosesan  oleh 
manusia  atau  secara
otomatis (American National Standards Institute).
Jaringan komunikasi merupakan kumpulan dari alat-alat yang ingin
berkomunikasi. Kemungkinan-kemungkinan yang terjadi adalah (Stallings,2004, p9):
-
Bila perangkat-perangkatnya saling terpisah jauh.
-
Terdapat serangkaian perangkat, masing-masing membutuhkan jaringan
untuk menghubungkan satu sama lain pada waktu yang berbeda-beda.
Jaringan komputer adalah kumpulan komputer-komputer yang saling
terinterkoneksi dengan sebuah jaringan komunikasi (Stallings,2004,p9).
2.1.1 Protokol Komunikasi dan Fungsi dari Protokol
Dua pihak
yang berkomunikasi
harus
memiliki persetujuan dalam hal
apa
yang
dikomunikasikan, cara berkomunikasi, kapan berkomunikasi.
Persetujuan
ini
disebut
dengan
protokol.
Definisi
protokol
menurut Stallings
(2004,p12)
adalah
sekumpulan
aturan-aturan yang mengatur pertukaran data antara dua entitas.
  
9
Elemen-elemen kunci suatu protokol terdiri dari (Stallings,2004,p13) :
-
Sintaks: meliputi hal-hal seperti format data dan tinggi rendah sinyal.
-
Semantik:
meliputi
informasi
kontrol
untuk
koordinasi
dan
penanganan kesalahan (error handling).
-
Timing: meliputi penyesuaian kecepatan dan pengurutan.
a. OSI Model
Open
Systems
Interconnection
(OSI)
model
dikembangkan
oleh International
Organization for Standardization (ISO) sebagai model untuk arsitektur komunikasi
komputer,
serta sebagai
kerangka kerja
bagi
pengembangan standar-standar
protokol.
(Stallings,2004,p21)
OSI memiliki 7 layer, yaitu:
1. Physical Layer
Physical layer mencakup physical interface yang ada diantara perangkat
komunikasi dan aturan bagaimana bit-bit data melewati satu titik ke titik lain.
2. Data Link Layer
Data
link
layer mengupayakan agar link fisik dapat bekerja dengan baik
dan menyediakan fungsi untuk mengaktifkan, mempertahankan, dan
menonaktifkan link.
3. Network Layer
Network layer menyediakan transfer informasi antar end systems melalui
beberapa jaringan komunikasi. Pada layer ini, sistem komputer berdialog dengan
jaringan untuk menentukan alamat tujuan dan meminta fasilitas jaringan tertentu,
seperti prioritas.
  
10
4. Transport Layer
Transport
layer
menyediakan   mekanisme
yang
baik
untuk
pertukaran
data antar proses pada sistem
yang berbeda. Transport layer
memastikan data
unit
yang
dikirimkan
bebas
dari error,
terurut,
tanpa
kehilangan
atau
penggandaan.
5. Session Layer
Layer ini menyediakan mekanisme untuk mengontrol dialog diantara
aplikasi pada end system. Servis-servis kunci yang disediakan oleh session layer
adalah dialogue discipline, grouping, dan recovery.
6. Presentation Layer
Presentation layer
menentukan
format
data
yang
dipindahkan
diantara
aplikasi dan menawarkan layanan transformasi data kepada program-program
aplikasi.
7. Application Layer
Application
layer
menyediakan
cara
bagi
program aplikasi
untuk
mengakses OSI environment.
  
11
Gambar 2.1 Lingkungan OSI
b. TCP/ IP Protocol Suite
TCP/IP (Transmission Control Protocol/ Internet Protocol) merupakan hasil dari
pengembangan
dan
riset
protokol
yang
dilakukan
atas
jaringan paket-switched
eksperimental
(experimental
packet-switched
network), ARPANET, dan didanai oleh
DARPA  (Defense Advanced Research Project Agency),  dan  secara  umum  dikenal
sebagai TCP/IP protocol suite. Protocol suite ini terdiri atas sekumpulan protokol dalam
jumlah besar yang dijadikan sebagai standar internet. (Stallings,2004,p13)
Tidak ada model protokol TCP/IP resmi sebagaimana yang ada dalam OSI.
  
12
Protokol TCP/IP terbagi atas layer-layer, yaitu:
Application layer
:
menyediakan komunikasi diantara proses atau aplikasi pada
host-host terpisah. Contoh: SMTP, POP3, Telnet, HTTP, dan lainnya.
End-to-end atau transport layer: menyediakan layanan transfer data end-to-end.
Transport  layer  menyembunyikan detil-detil jaringan dari application  layer.
Contoh:  TCP dan UDP.
Internet  layer:
Berkaitan  dengan  routing data  dari  sumber  ke  host tujuan
melewati satu jaringan atau lebih yang dihubungkan melalui router. Contoh: IP,
ICMP.
Network access
layer:
Berkaitan dengan
logical
interface diantara
end
system
dan jaringan.
Physical
layer:
Menentukan
karakteristik-karakteristik
media
transmisi,
signal
rate dan signal encoding scheme.
Gambar 2.2 Perbandingan arsitektur Protokol OSI dan TCP/IP
  
13
2.2  Object Oriented Analysis and Design (OOAD) dan Unified Modelling Language
(UML)
Object-oriented analysis adalah pendekatan
yang digunakan
untuk
mempelajari
objek-objek
yang ada agar diketahui bila dapat digunakan ulang atau diadaptasi untuk
penggunaan baru. Objek-objek baru ataupun yang telah dimodifikasi dapat
dikombinasikan dengan
objek-objek yang telah ada agar dapat berguna bagi
aplikasi
perhitungan bisnis. (Whitten et al, 2004, p430).
Konsep-konsep dasar dalam OOAD, yaitu:
-
Objek (object) adalah “benda”, secara fisik atau konseptual, yang dapat kita temui di
sekeliling kita.
Sebuah
objek
memiliki
keadaan
sesaat
(state)
dan
perilaku
(behaviour). State dinyatakan dengan nilai dari atribut (attribute) objeknya.
Behaviour
dari
sebuah objek
dicerminkan oleh
interface, service,
dan method
dari
objek tersebut.
-
Attribute   adalah  nilai  internal  suatu  objek  yang  mencerminkan  antara  lain
karakteristik objek, kondisi sesaat, koneksi dengan objek lain, dan identitas.
-
Interface adalah pintu ruang untuk mengakses service objek.
-
Service adalah fungsi yang bisa diemban objek.
-
Method adalah
mekanisme
internal objek yang mencerminkan perilaku (behaviour)
objek tersebut.
-
Kelas (class) adalah definisi umum (pola, template atau cetak biru) untuk himpunan
objek sejenis. Kelas adalah abstraksi dari entitas dalam dunia nyata.
  
14
Menurut
pendapat
Booch et al (1998),UML (Unified Modelling Language)
merupakan suatu bahasa pemodelan yang dapat digunakan untuk visualisasi,
mengkonstruksi, dan mendokumentasi artifact yang ada dalam piranti lunak.
Tujuan utama UML diantaranya untuk
-
Memberikan
model
yang
siap
pakai, bahasa pemodelan
visual
yang
ekspresif untuk mengembangkan dan saling menukar model dengan
mudah dan dimengerti secara umum.
-
Memberikan  bahasa  pemodelan  yang  bebas  dari  berbagai  bahasa
pemrograman dan proses rekayasa.
-  
Menyatukan praktek-praktek terbaik yang terdapat dalam pemodelan.
Untuk
membuat
suatu
model,
beberapa diagram
grafis
UML
yang
dapat
digunakan
adalah sebagai berikut:
1.   Use case diagram
Use case diagram adalah pusat dari pemodelan perilaku sebuah sistem,
subsistem
atau sebuah class. Setiap use case diagram
menunjukkan use cases
dan actors maupun hubungan yang dimilikinya. (Booch et al,1998,p233)
Use
case
diagram
sangat
penting
dalam visualisasi,
spesifikasi
dan
mendokumentasi perilaku sebuah elemen.
Use
case diagram
membuat sistem-
sistem, subsistem-subsistem, dan
class-class menjadi dapat dimengerti dan
dipahami dengan menampilkan pandangan bagaimana suatu elemen digunakan
pada konteksnya. (Booch et al,1998,p233)
  
15
Buy Items
Gambar 2.3. Contoh Use Case
Customer
Gambar 2.4. Contoh Actor
Use case diagram terdiri dari:
-
Use case
-
Actor
-
Hubungan (relationship) antara use case dengan actor. Actor dan use
case berkomunikasi atau mempunyai relasi jika ada pertukaran
informasi antara mereka.
Pengaturan  use cases dapat  dilakukan  dengan  menjelaskan  hubungan
generalization, include  dan extend  yang ada
di  dalamnya  (Booch  et  al,
1998,p105).
Generalization   pada
uses
cases
mirip
dengan
yang
ada pada
classes.
Yang berarti child use case mewarisi perilaku dan arti yang dimiliki oleh parent
use case; child use case dapat
menambah perilaku atau
memiliki overidde dari
perilaku parent use case. (Booch et al, 1998,p227)
Hubungan include
antar
use cases berarti sebuah use case dasar
secara
eksplisit
menyertakan perilaku kepada use case lain yang terdapat pada
lokasi
  
16
yang  telah  dispesifikasikan.  Sebuah  included use case tidak  pernah  berdiri
sendiri, melainkan merupakan sebuah bagian dari beberapa use case dasar yang
lebih besar yang menyertakannya. (Booch et al, 1998,p227)
Hubungan extend antar uses cases berarti use case dasar secara
implisit
menyertakan
perilaku
kepada use
case
lain
pada
suatu
lokasi
yang
telah
dispesifikasikan
secara tidak
langsung dengan melakukan extend use case. Use
case
dasar
dapat
berdiri
sendiri,
namun pada
kondisi
tertentu,
perilaku
yang
dimilikinya mungkin di extend dengan perilaku yang dimiliki oleh use case lain.
(Booch et al, 1998,p228)
Gambar 2.5 Use-case diagram
(Booch et al, 1998,p234)
2.   Class diagram
Menurut pendapat Booch et al (1998,p105), class diagram menunjukkan
sekumpulan kelas-kelas, interface serta kolaborasi dan hubungan antar mereka.
  
17
Class diagram biasanya terdiri dari (Booch et al, 1998,p105):
-
Classes.
Class adalah deskripsi dari sekelompok objek yang memiliki
atribut (attribute), operasi (operation), hubungan (relationship) dan
semantik (semantic) yang sama (Booch et al, 1998, p49).
-
Interfaces.
Inteface adalah sekumpulan operasi yang digunakan untuk
menjelaskan
service
yang
dimiliki
oleh
sebuah
class atau sebuah
komponen. (Booch et al, 1998, p155)
-
Collaborations.
Collaborations digunakan untuk menjelaskan realisasi dari suatu
use
case dan
operasi-operasi,
dan
untuk
memodelkan
mekanisme
arsitektur dari sistem yang ada. (Booch et al, 1998, p369)
-
Dependency, generalization, dan association relationship.
Dependency adalah menggunakan hubungan suatu state yang bila
salah satu spesifikasinya mengalami perubahan, akan mempengaruhi hal
lain yang menggunakannya. (Booch et al, 1998, p63)
Generalization adalah
hubungan antara suatu hal
umum (disebut
dengan
superclass
atau parent) dengan
hal
yang
lebih
spesifik
(disebut
subclass atau child). (Booch et al, 1998, p64)
Association
adalah
hubungan
struktural yang
menjelaskan
suatu
objek dari suatu hal berhubungan dengan objek dari hal lain. (Booch et al,
1998, p65)
  
18
Ada 4 atribut yang dapat dimiliki oleh associations, yaitu: (Booch et al,
1998, p65)
Name: Sebuah
association
dapat
memiliki
nama,
dan
nama
dapat
dijabarkan sesuai dengan hubungan yang dimiliki.
Role: Setiap
class
memiliki peranan yang
dimainkan
dalam
suatu
hubungan.
Multiplicity:
Menjelaskan
seberapa banyak
objek
yang
terhubung
melalui instance dari suatu associations. Macam-macam multiplicity
:
tepat satu (1), nol sampai satu (0..1), banyak (0..*), satu atau lebih
(1..*).
Aggregation: Menunjukkan suatu objek yang
lebih besar
memiliki
objek
lain
sebagai
bagiannya. Aggregation
dilambangkan
dengan
association yang diujungnya terdapat lambang berlian.
Gambar 2.6 Class diagram (Booch et al,1998,p106)
  
19
3.   Statechart diagram
Statechart diagram
menunjukkan
mekanisme
state,
menekankan
pada
aliran kontrol dari suatu state ke state yang
lain. Mekanisme
state adalah suatu
perilaku yang akan menjelaskan urutan suatu state dari objek berpindah selama
masa  hidupnya  (lifetime)  sebagai  respon  dari  suatu  event,  bersama  respon
terhadap
event
tersebut.
Sebuah
state
adalah
kondisi
atau
situasi
hidup
suatu
objek selama memenuhi suatu kondisi, melakukan kegiatan, atau menunggu
terjadinya suatu event. Suatu event adalah spesifikasi dari kejadian penting yang
terjadi
pada
suatu
satuan
ruang
dan
waktu. Dalam konteks
mekanisme
state,
sebuah event adalah kejadian yang akan memicu terjadinya transisi state.
Gambar 2.7 Statechart diagram (Booch et al, 1998, p289)
2.3 Objek-objek yang Berperan dalam Pengiriman Email
Dalam pengiriman email, terdapat objek-objek
yang memiliki peranan penting.
Objek-objek itu meliputi Mail Transfer Agent (MTA) dan Mail User Agent (MUA).
  
20
a. Mail Transfer Agent (MTA)
MTA
adalah
sebuah
aplikasi
atau
software agent
yang
berfungsi
untuk
mengirimkan
pesan
atau email
dari
satu
komputer
ke
komputer
lain
menerima  pesan  dari  Mail
User Agent (MUA) atau dari MTA lain, kemudian mengirimkannya pada MTA lain atau
b. Mail User Agent (MUA)
MUA adalah sebuah aplikasi atau software agent yang berfungsi untuk membaca
email,
membuat email,
dan
mengirimkannya
pada
MTA
MUA biasanya merupakan sumber
(source)
atau
tujuan
(target)
daripada email.
Sebagai
sumber,
MUA
bertugas
mengumpulkan email yang akan dikirimkan oleh user, kemudian menyerahkannya pada
MTA(Mail Transfer Agent). Sebagai tujuan, MUA berperan sebagai tempat pengiriman
terakhir dari email (Klensin, 2001, RFC 2821).
2.4 Protokol-protokol dalam Pengiriman Email
Dalam pengiriman
email
dibutuhkan
suatu
protokol
yang
dapat
mengatur
bagaimana
komunikasi
antara
objek-objek
yang
berperan
dalam pengiriman
email.
Protokol SMTP digunakan
untuk
mengirimkan email dari MTA ke MTA
lain atau ke
MUA. Dalam prosesnya, protokol
SMTP
menggunakan
bantuan
DNS
untuk
mengirimkan
email
sampai
ke
tempat
tujuan. Protokol POP3 digunakan oleh
client
(MUA) untuk meminta server (MTA) mengirimkan email padanya (di-download).
  
21
2.4.1 Simple Mail Transfer Protocol (SMTP) dan perintah-perintah SMTP
SMTP adalah standar protokol dalam pengiriman email antar host pada protokol
TCP/IP. (Stallings, 2004, p697)
Tujuan utama
dari SMTP adalah untuk mengirimkan email secara reliabel dan
efisien. SMTP tidak tergantung suatu sistem transmisi tertentu dan hanya membutuhkan
suatu saluran data
yang reliabel. Biasanya SMTP
menggunakan TCP sebagai protokol
transportnya. (Klensin, 2001, RFC 2821).
Salah satu fitur penting SMTP adalah kemampuannya untuk mengirimkan email
melewati
jaringan-jaringan,
yang
biasa
disebut
“SMTP mail
relaying”.
Menggunakan
SMTP,
sebuah
proses
dapat
mengirimkan
email pada
proses
lain
pada
jaringan
yang
sama atau jaringan yang berbeda melalui sebuah relay atau gateway yang dapat diakses
dari jaringan tersebut. Dengan cara ini, sebuah email mungkin melewati sejumlah relay
atau 
gateway 
penghubung  dalam  perjalanannya 
dari  pengirim 
menuju 
penerima.
(Klensin, 2001, RFC 2821)
User
File
System
SMTP
Client
SMTP
Command /
Replies
SMTP
Server
File
System
Gambar 2.8 SMTP
(Klensin, 2001, RFC 2821)
Ketika  sebuah  SMTP  client
mempunyai  pesan 
untuk  dikirimkan,  ia  akan
membuat sebuah saluran transmisi dua arah dengan sebuah SMTP server.
Tugas dari
  
22
sebuah SMTP client adalah untuk mentransfer email pada satu atau lebih SMTP server
atau melaporkan bila terjadi kegagalan. (Klensin, 2001, RFC 2821).
Sebuah SMTP client
dapat
mengetahui
alamat
dari SMTP server
yang
sesuai
dengan
cara
melakukan
resolving terhadap nama
domain
tujuan walaupun
tujuan
itu
adalah Mail exchanger penyambung atau host tujuan terakhir.
Sebuah SMTP server dapat berupa tujuan
terakhir atau relay penyambung
(ini
dapat
berperan
menjadi
SMTP client
setelah
menerima
pesan)
atau
gateway
(akan
mengirimkan pesan lebih jauh dengan menggunakan protokol selain SMTP). Perintah
SMTP
(SMTP
command)
dihasilkan
oleh
SMTP client
dan
dikirimkan
pada
SMTP
server. Balasan SMTP
(SMTP replies)
dikirim
dari
SMTP server
pada SMTP client
sebagai tanggapan terhadap perintah-perintah tersebut. (Klensin, 2001, RFC 2821).
Ketika saluran transmisi telah dibuat dan handshaking awal telah selesai, SMTP
client biasanya
memulai transaksi email. Transaksi tersebut biasanya terdiri dari
urutan
perintah 
untuk 
menentukan 
pengirim 
dan 
tujuan  dari 
email 
dan  perintah 
untuk
pengiriman
isi
pesan (termasuk
header
atau
struktur
lain).
Ketika
pesan
yang
sama
dikirim pada
penerima
yang
lebih
dari
satu,
protokol
ini
menganjurkan
agar
hanya
mengirim
satu salinan data
untuk semua penerima bila
tujuannya sama (berada dalam
satu domain)
Server menanggapi setiap perintah dengan balasan. Balasan dapat menandakan
bahwa
perintah
diterima, perintah kurang
lengkap,
atau
ada
kesalahan sementara atau
permanen.
SMTP mempunyai mekanisme pengiriman email sebagai berikut : bila pengirim
dan penerima
berada pada satu transport service yang sama (jaringan yang sama),
pengiriman  dilakukan  secara 
langsung.  Bila  pengirim  dan  penerima  berada  pada
  
23
transport service
yang berbeda (jaringan yang berbeda), maka pengiriman akan
melibatkan satu atau lebih SMTP server penyambung. SMTP server penyambung yang
berperan sebagai SMTP relay atau gateway ini biasanya dipilih melalui mekanisme Mail
eXchanger (MX)  dari Domain Name Service (DNS).
Relay dan Gateway
Menurut Klensin, 2001,
RFC 2821,
sebuah
sistem relay
SMTP
(biasa disebut
relay”   saja)   menerima   email  dari   SMTP   client   dan   mengirimkannya   tanpa
memodifikasi data selain menambah informasi pencatatan jejak, pada SMTP server lain
untuk direlay lebih jauh atau untuk pengiriman.
Menurut Klensin, 2001, RFC 2821, sebuah sistem gateway SMTP (biasa disebut
gateway” saja)
menerima
email
dari
client dari suatu lingkungan
transport dan
mengirimkannya pada server dari suatu lingkungan transport yang berbeda.
Perbedaan dalam protokol atau semantik pesan antara lingkungan transport dari
kedua
sisi
gateway
memungkinkan gateway melakukan transformasi
pada pesan
yang
tidak diperbolehkan pada sistem relay SMTP. (Klensin, 2001, RFC 2821).
Prosedur SMTP
SMTP
memiliki
beberapa
prosedur
berikut
untuk
mengirimkan email,
yaitu
inisiasi sesi (session initiation), inisiasi oleh client (client initiation), transaksi mail (mail
transaction), meneruskan
mail
(forwarding
mail),
memeriksa
nama
mailbox (verifying
mailbox names), expanding mailing lists, dan pembukaan dan penutupan pertukaran
(opening and closing exchanges). (Klensin, 2001, RFC 2821)
  
24
Inisisasi Sesi (Session Initiation)
Sebuah  sesi  SMTP  dibuat  ketika  client melakukan  koneksi  pada  server dan
server merespon
dengan
pesan pembuka. SMTP server dapat
memberikan identifikasi
mengenai
software
dan
informasi
versi dalam
pesan pembuka. (Klensin,
2001, RFC
2821)
Inisiasi oleh Client (Client Initiation)
Setelah server
telah
mengirim pesan
pembuka
dan
client telah
menerimanya,
biasanya
client
mengirimkan perintah
EHLO pada server
untuk memberitahu identitas
client. Penggunaan EHLO
menandakan  bahwa  client dapat 
memproses  tambahan
layanan
(service
extensions)
dan
meminta
pada
server untuk
menyediakan daftar
tambahan yang didukung. SMTP server atau client yang tidak mendukung EHLO, dapat
menggunakan perintah HELO untuk melakukan inisiasi. (Klensin, 2001, RFC 2821).
Transaksi Mail (Mail Transactions)
Ada tiga langkah dalam melakukan transaksi mail SMTP. Transaksi dimulai
dengan
perintah
MAIL
yang
mengidentifikasi pengirim. Lalu
dilanjutkan
dengan satu
atau
lebih
perintah
RCPT
untuk
memberikan informasi
mengenai
penerima
(tujuan).
Kemudian perintah DATA digunakan untuk
memulai pengiriman
isi email dan diakhiri
dengan
indikator akhir email (end of mail). Setelah itu transaksi mail selesai dan data
siap dikirim (Klensin, 2001, RFC 2821).
Meneruskan Mail (Forwarding Mail)
Meneruskan
mail (forwarding) biasanya dibutuhkan untuk menggabungkan atau
menyederhanakan
alamat
dalam
sebuah perusahaan
atau kadang-kadang
dipakai
untuk
membuat
alamat
yang
menyambungkan alamat
lama
seseorang. Dalam
implementasi,
  
25
SMTP server dapat memilih untuk memberitahukan client mengenai perubahan alamat,
atau diam-diam meneruskan email ke alamat yang baru. (Klensin, 2001, RFC 2821)
Memeriksa nama mailbox (Verifying Mailbox Name)
SMTP
mempunyai
perintah
untuk
memeriksa
nama
mailbox
atau
nama
user
yang terdaftar pada SMTP server tersebut, yaitu VRFY.  Jika nama mailbox atau nama
user  yang diberikan terdaftar pada  server, maka server  akan mengirimkan balasan
berupa nama lengkap dari user dan nama mailbox nya. (Klensin, 2001, RFC 2821)
Mendapatkan daftar anggota milis(Expanding Mailing List)
Untuk mendapatkan isi (daftar anggota) dari sebuah milis (Mailing List), SMTP
menggunakan
perintah
EXPN.
Jika
nama
milis
tersebut valid,
maka
server
akan
mengirimkan balasan berupa
nama user dan nama mailbox nya. (Klensin, 2001,
RFC
2821)
Penutupan sesi dan koneksi
Koneksi
SMTP
ditutup
ketika client
mengirimkan
perintah
QUIT.
Server
membalas dengan balasan positif, setelah itu
memutuskan koneksi. SMTP server tidak
boleh memutuskan koneksi secara sengaja kecuali jika :
Setelah menerima perintah QUIT, dan membalas dengan kode 221
Setelah 
mendeteksi  ada 
kebutuhan 
untuk 
mematikan 
layanan 
SMTP 
dan
memberikan kode 421.
Server tidak boleh memutuskan koneksi jika menerima perintah yang tidak
dikenalnya,
melainkan
server
harus mengirimkan kode balasan 500 dan menunggu
perintah selanjutnya dari client.
  
26
Perintah-perintah SMTP (SMTP commands)
Perintah
SMTP
mendefinisikan
proses transfer email atau fungsi lainnya yang
diminta oleh user. Perintah SMTP adalah berupa kata (string) yang diakhiri dengan
CRLF
(Carriage
Return
&
Line
Feed
atau karakter
ganti baris).
Jika
ada
parameter
maka dipisahkan dengan karakter spasi. (Klensin, 2001, RFC 2821)
Extended HELLO (EHLO) atau HELLO (HELO)
Perintah ini digunakan untuk mengidentifikasi client pada SMTP server. Perintah
ini dapat
mempunyai
argumen
berupa
nama domain
lengkap
(Fully-Qualified
Domain
Name / FQDN) dari client
jika ada. Jika client tidak mempunyai nama domain, maka
client harus mengirimkan alamatnya (berupa alamat IP). (Klensin, 2001, RFC 2821)
SMTP client harus
memulai sesi SMTP dengan mengirim perintah
EHLO. Jika
SMTP server mendukung layanan tambahan SMTP (SMTP service extensions), ia akan
memberikan tanggapan sukses, tanggapan gagal atau tanggapan kesalahan. SMTP client
yang lebih kuno boleh menggunakan HELO selain EHLO, dan server harus mendukung
perintah HELO dan memberikan balasan dengan benar.
MAIL (MAIL)
Perintah ini digunakan untuk menginisiasi transaksi
email
dimana
isi email
tersebut akan dikirimkan pada sebuah SMTP server. Perintah ini mempunyai argumen
berupa
reverse-path
dan
mempunyai
beberapa
parameter
opsional. Reverse-path
merupakan
alamat
mailbox
dari
pengirim.
Dalam beberapa
kasus
seperti
pengiriman
laporan
kegagalan
pengiriman,
reverse-path
dapat
dibiarkan
kosong
(Klensin,
2001,
RFC 2821).
Jika layanan tambahan digunakan, maka perintah MAIL dapat juga mengandung
parameter yang sesuai dengan layanan tersebut.
  
27
RECIPIENT (RCPT)
Perintah 
ini 
digunakan 
untuk 
mengidentifikasi  penerima 
dari  pesan. 
Bila
penerima lebih dari satu, maka perintah ini harus digunakan berulang-ulang. Perintah ini
mempunyai   argumen   berupa   forward-path  dan   mempunyai   beberapa   parameter
opsional. Forward-path biasanya berupa alamat mailbox dari penerima (Klensin, 2001,
RFC 2821).
Jika layanan tambahan digunakan, maka perintah RCPT dapat juga mengandung
parameter yang sesuai dengan layanan tersebut (Klensin, 2001, RFC 2821).
DATA (DATA)
Perintah
ini digunakan
untuk
menandai awal
dari
isi email.
Setelah
menerima
perintah
DATA,
penerima biasanya
mengirimkan balasan berupa kode 354, kemudian
menganggap baris-baris seterusnya sebagai data atau isi email dari pengirim.
Isi email
dapat
mengandung
karakter
yang
termasuk
128
karakter
ASCII. Isi
email diakhiri dengan sebuah baris
yang
hanya mengandung satu buah titik (’.’),
yaitu
urutan karakter ”<CRLF>.<CRLF>”. <CRLF> yang pertama merupakan akhir dari baris
terakhir data (baris di atas tanda titik).
Penerimaan
data akhir
email (end of
mail)
menandakan
bahwa server
harus
menyimpan
informasi
mengenai
transaksi email
tersebut.
Jika
proses
ini
berhasil,
penerima harus mengirimkan balasan OK. Jika gagal, penerima harus mengirimkan
balasan gagal. Model SMTP tidak mengijinkan keadaan setengah berhasil atau setengah
gagal, setiap pesan harus berhasil dikirim atau gagal dikirim.
Ketika SMTP server menerima pesan baik untuk relaying atau untuk pengiriman
terakhir,
ia
menambahkan jejak
(trace
record atau time stamp)
pada bagian atas dari
email. Jejak ini menandakan identitas dari host yang mengirim pesan, identitas host yang
  
28
menerima pesan
dan
tanggal
dan waktu
pesan tersebut
diterima.
Pesan
yang
direlay
dapat mempunyai lebih dari satu baris time stamp. (Klensin, 2001, RFC 2821)
RESET (RSET)
Perintah ini menyatakan bahwa transaksi email saat
ini akan dibatalkan. Semua
informasi
mengenai pengirim, penerima dan isi email
harus diabaikan. Penerima
harus
mengirim balasan
250 OK
terhadap perintah
RSET. Perintah
RSET dapat digunakan
client kapan
saja. Server tidak boleh
menutup
koneksi
jika
mendapat
perintah
RSET.
(Klensin, 2001, RFC 2821)
VERIFY (VRFY)
Perintah ini meminta penerima (server) untuk memastikan apakah argumen yang
diberikan nama user atau nama mailbox. (Klensin, 2001, RFC 2821)
EXPAND (EXPN)
Perintah ini meminta pada penerima (server) untuk memastikan apakah argumen
berupa milis, jika ya, penerima akan mengirimkan daftar anggota dari milis tersebut.
(Klensin, 2001, RFC 2821)
HELP (HELP)
Perintah
ini meminta
server
untuk
mengirimkan
informasi
yang
berguna
pada
client. Perintah ini bisa mempunyai argumen (berupa
nama perintah) dan
mengirimkan
informasi yang spesifik sebagai balasan. (Klensin, 2001, RFC 2821)
NOOP (NOOP)
Perintah ini tidak mempengaruhi parameter atau perintah yang diberikan
sebelumnya.
Perintah
ini
tidak
melakukan
apa
selain
penerima
mengirimkan
balasan
OK. (Klensin, 2001, RFC 2821)
  
29
QUIT (QUIT)
Perintah   ini   mengharuskan   penerima   (server)   mengirimkan   balasan   OK,
kemudian menutup saluran transmisi (koneksi). Penerima
tidak boleh secara sengaja
menutup saluran transmisi sampai ia menerima dan membalas perintah QUIT. Pengirim
tidak  boleh  secara  sengaja  menutup  saluran  transmisi  sampai  ia  mengirim  perintah
QUIT, dan harus menunggu sampai ia menerima balasan.
Jika koneksi terputus tanpa mengikuti aturan diatas, maka server harus
membatalkan transaksi yang belum selesai (pending) tetapi tidak membatalkan transaksi
yang sudah selesai (completed) (Klensin, 2001, RFC 2821)
Balasan-balasan SMTP (SMTP replies)
Balasan terhadap SMTP penting untuk memastikan sinkronisasi dari permintaan
dan
aksi
dalam proses
pengiriman
email,
dan
untuk
menjamin
SMTP
client
selalu
mengetahui status dari SMTP server. Setiap perintah harus mendapatkan satu balasan.
(Klensin, 2001, RFC 2821)
Balasan SMTP terdiri dari tiga
digit
kode,
digit
pertama
menandakan
apakah
balasan itu benar, salah
atau tidak
lengkap,
digit kedua
dan
ketiga
berperan
sebagai
informasi tambahan. (Klensin, 2001, RFC 2821)
Ada lima nilai untuk digit pertama dari kode balasan (Klensin, 2001, RFC 2821)
Positive Preliminary reply (1yz)
Perintah telah diterima, tetapi aksi ditunda sementara,
menunggu konfirmasi
terhadap reply ini. SMTP client harus mengirimkan perintah untuk
meneruskan atau membatalkan aksi.
  
30
Positive Completion reply (2yz)
Aksi yang diminta telah selesai dilaksanakan. Perintah yang baru bisa
dimasukkan lagi.
Positive Intermediate reply (3yz)
Perintah   telah   diterima,   tetapi   aksi   yang   diminta   ditunda   sementara,
menunggu 
penerimaan 
informasi 
lebih 
lanjut. 
SMTP  client
harus
mengirimkan perintah lain yang mengandung informasi ini.
Transient Negative Completion reply (4yz)
Perintah tidak diterima, dan aksi yang diminta
tidak
dilakukan. Walaupun
demikian, kondisi kesalahan ini hanya sementara dan aksi dapat diminta
kembali.
Permanent Negative Completion reply (5yz)
Perintah tidak diterima, dan aksi yang diminta tidak dilakukan. SMTP client
diharapkan tidak
mengulangi perintah yang sama atau urutan perintah yang
sama.
Kode-kode balasan SMTP berikut ini diurutkan berdasarkan fungsinya. (Klensin,
2001, RFC 2821)
500 Syntax error, command unrecognized
Artinya : kesalahan sintaks, perintah tidak dikenal
501 Syntax error in parameters or arguments
Artinya : kesalahan sintaks pada argumen atau parameter
502 Command not implemented
Artinya : perintah belum diimplementasi
  
31
503 Bad sequence of commands
Artinya : urutan perintah salah
504 Command parameter not implemented
Artinya : parameter perintah belum diimplementasi
211 System status, or system help reply
Artinya : status sistem atau bantuan
214 Help message
Artinya : pesan bantuan
220 <domain> Service ready
Artinya : layanan siap, biasanya ini merupakan salam pembuka
221 <domain> Service closing transmission channel
Artinya : layanan menutup saluran transmisi
421 <domain> Service not available, closing transmission channel
Artinya : Layanan tidak tersedia, menutup saluran transmisi
(Ini 
merupakan  jawaban  terhadap  semua  perintah  bila
layanan harus dimatikan)
250 Requested mail action okay, completed
Artinya : Aksi yang diminta selesai dilaksanakan
251 User not local; will forward to <forward-path>
Artinya : user tidak terdaftar di server, tetapi server akan
meneruskan ke alamat lain (forward-path)
252 Cannot VRFY user, but will accept message and attempt
delivery
Artinya : tidak dapat melakukan VRFY, tetapi tetap menerima
  
32
pesan dan mencoba mengirimkan
450 Requested mail action not taken: mailbox unavailable
Artinya : aksi tidak dapat dilakukan, mailbox tidak ada (sibuk)
550 Requested action not taken: mailbox unavailable
Artinya : aksi tidak dapat dilakukan, mailbox tidak ada (mailbox
tidak terdaftar, tidak ada akses atau perintah ditolak)
451 Requested action aborted: error in processing
Artinya : aksi dibatalkan, kesalahan terjadi saat proses
551 User not local; please try <forward-path>
Artinya : user tidak terdaftar di server, client diminta mencoba
alamat lain (forward-path)
452 Requested action not taken: insufficient system storage
Artinya : aksi tidak dilakukan, penyimpanan sistem tidak cukup
552 Requested mail action aborted: exceeded storage allocation
Artinya : aksi dibatalkan, penyimpanan melebihi batas
553 Requested action not taken: mailbox name not allowed
Artinya : aksi tidak dilakukan, nama mailbox tidak valid
354 Start mail input; end with <CRLF>.<CRLF>
Artinya : awal dari isi pesan, akhiri dengan <CRLF>.<CRLF>
554 Transaction failed
Artinya : transaksi gagal
  
33
2.4.2  Domain Name Service (DNS) dan Elemen-elemennya
DNS (Domain
Name
Service)
adalah
suatu layanan
yang
menyediakan
suatu
mekanisme untuk memberi nama pada suatu resource dengan suatu cara sehingga nama
dapat digunakan
pada host
yang
berbeda,
jaringan, protokol,
Internet
dan
organisasi-
organisasi. (Mockapetris, 1987, RFC 1035).
DNS
server
biasanya
menyimpan
informasi
sebagai
kumpulan
dari resource
record  (RRs),  yang  masing-masing  mengandung  informasi  tertentu  mengenai  suatu
nama domain. (Partridge, 1986, RFC 974)
DNS mempunyai 3 elemen utama (Mockapetris, 1987, RFC 1034):
Domain
Name
Space
dan
Resource
Record,
merupakan
spesifikasi
untuk
nama
yang
mempunyai
struktur tree
dan
data
yang
mengacu
pada
nama
tersebut.
Operasi query
digunakan
untuk
mengambil
tipe
tertentu
dari
informasi yang berasal dari
himpunan tertentu. Sebuah query menyebutkan
nama domain dan tipe resource yang diinginkan.
Name 
server,   merupakan   program
server   yang   menyimpan   informasi
mengenai tree domain structure dan informasi mengenai himpunan.
Resolver,
merupakan
program
yang
mengambil
informasi
dari
name
server
sebagai
tanggapan
atas
permintaan
dari client.
Resolver
harus
dapat
mengakses salah satu name server dan menggunakan informasi dari name
server itu untuk menjawab query secara langsung atau meneruskan query ke
name server lain dengan menggunakan pengacu dari name server tersebut..
  
34
Resource Record
Setiap nama domain mempunyai himpunan informasi mengenai sesuatu, yang
bisa saja kosong. Himpunan
informasi
yang mengacu pada suatu nama
tertentu terdiri
dari Resource Record (RR) yang terpisah. Urutan dari RR dalam suatu himpunan tidak
berpengaruh. (Mockapetris, 1987, RFC 1034)
RR mempunyai komponen berikut (Mockapetris, 1987, RFC 1034) :
Owner, merupakan nama domain dari RR yang bersangkutan
Type, menyatakan tipe dari resource dalam RR tersebut, antara lain:
o
A
alamat host
o
CNAME
mengidentifikasi 
nama 
resmi  (canonical name)
dari alias
o
HINFO
mengidentifikasi  Central Processing Unit  (CPU)
dan Operating System (OS) dari host
o
MX
mengidentifikasi mail exchange untuk domain tersebut
o
NS
name 
server 
yang 
bertanggung 
jawab 
untuk 
domain
tersebut.
o
PTR
pointer untuk bagian lain dari domain name space
o
SOA
mengidentifikasi
awal
dari
zona
otoritas
(zone
of
authority).
Class, menentukan protokol apa yang digunakan.
TTL, 32 bit signed integer yang menspesifikasikan interval waktu yang telah
dilakukan cache oleh resource record sebelum sumber dari informasinya
dikonsultasikan kembali.
  
35
RDATA, merupakan data dari resource, isinya tergantung dari type dan class.
Mail eXchanger (MX) dan MX Record
Mail exchanger merupakan sebuah SMTP server yang bertanggung jawab untuk
menangani
email
untuk suatu
domain tertentu.
Alamat
dari Mail
exchanger ini
terkandung pada MX
record dari
DNS. 
Suatu domain bisa saja
mempunyai satu atau
lebih MX record.
Setiap MX
mempunyai dua buah data,
yaitu
nilai prioritas (preference value),
dan nama dari host. Nilai prioritas digunakan untuk menentukan urutan MX host
mana
yang  harus  dihubungi  oleh  pengirim,  nilai  yang  paling  rendah  memiliki  prioritas
tertinggi. MX diperbolehkan memiliki nilai prioritas sama. (Partridge, 1986, RFC 974).
2.4.3 Post Office Protocol Version 3.0 (POP3) dan Operasi-operasinya
Protokol ini bertujuan untuk memungkinkan sebuah komputer/workstation untuk
mengakses
email
secara dinamis
yang tersimpan di sebuah server. Ini berarti protokol
POP3
ini
digunakan
untuk
memperbolehkan
sebuah
komputer
mengambil email dari
server
yang
menyimpannya.
POP3
tidak ditujukan
untuk
memanipulasi
email
yang
tersimpan  di  server,  biasanya  emaididownload  kemudian  dihapus.(Myers  &  Rose,
1996, RFC 1939)
Pada awalnya, server menjalankan layanan POP3 dengan mendengarkan pada
TCP port
110. Ketika sebuah
client ingin menggunakan layanan, ia akan membuat
koneksi
TCP
dengan
server.
Ketika
koneksi
sudah
dibuat, server
POP3
mengirimkan
sapaan. Client
dan POP3 server
kemudian bertukar perintah dan balasan (secara
bergantian) sampai koneksi ditutup atau dibatalkan. (Myers & Rose, 1996, RFC 1939)
  
36
Perintah pada POP3 terdiri dari keyword yang case-insensitive (huruf besar atau
kecil  tidak  berpengaruh),  bisa  ditambah  oleh  satu  atau  beberapa  argumen.  Semua
perintah diakhiri oleh CRLF (Carriage Return & Line Feed). Keyword dan argumen
terdiri dari karakter ASCII biasa. Keyword dan argumen dipisahkan oleh karakter spasi.
Keyword terdiri dari 3 atau 4 karakter. Setiap argumen bisa mencapai 40 karakter.
Balasan
dalam POP3
terdiri
dari
indikator
status
dan
keyword,
bisa
ditambah
dengan
informasi tambahan. Semua balasan diakhiri oleh CRLF.
Balasan dapat terdiri
dari 512
karakter
termasuk CRLF.
Ada
dua
indikator
:
positif
(“+OK”) dan
negatif
(”-ERR”).
Server
harus
mengirim
+OK
dan
”-ERR”
dalam huruf
besar. (Myers
&
Rose, 1996, RFC 1939)
Status-status dalam POP3
•   Status Otorisasi (Authorization State)
Ketika koneksi TCP telah dibuka oleh sebuah POP3 client, POP3 server
memberikan satu baris salam pembuka. Ini dapat berupa balasan positif apa saja, contoh
nya :   +OK POP3 server ready
Sesi POP3 sekarang berada pada status Otorisasi (Authorization). Client harus
mengidentifikasi dan mengotentikasi dirinya pada POP3 server. Ada dua mekanisme
untuk melakukan otentikasi, yaitu menggunakan kombinasi perintah USER dan PASS,
atau menggunakan perintah APOP. .(Myers & Rose, 1996, RFC 1939)
•   Status Transaksi (Transaction State)
Ketika
POP3
server
telah
mengetahui
bahwa client
tertentu
telah
melakukan
otentikasi dan client
tersebut
harus
diberi akses pada
maildropnya(
email
milik
user
yang tersimpan di server), POP3 server kemudian memperoleh exclusive-lock terhadap
  
37
maildrop, agar mencegah pesan diubah atau dihapus sebelum proses selesai.
Bila lock
berhasil  didapat,  POP3  server akan 
merespon  dengan  balasan  positif.  Sesi  POP3
sekarang berada pada status Transaksi (Transaction State)
Client sekarang dapat memberikan perintah POP3 berulang-ulang. Setelah setiap
perintah,
POP3
server akan
memberikan balasan, sampai
client
memberikan
perintah
QUIT. (Myers & Rose, 1996, RFC 1939)
Status Update (Update State)
Bila client memberikan perintah QUIT pada waktu berada pada status Transaksi,
sesi POP3 berada pada status Update (Update State). Jika client
memberikan perintah
QUIT pada waktu status Otorisasi, maka koneksi tetap akan ditutup, tetapi POP3 tidak
masuk ke status Update.
Pada status ini, POP3 server akan melakukan perubahan pada maildrop sebagai
efek dari perintah-perintah yang diberikan client.
.(Myers & Rose, 1996, RFC 1939)
Perintah-perintah POP3 (POP3 commands)
Perintah QUIT
Jika diberikan pada waktu status Otorisasi, perintah QUIT hanya berfungsi untuk
menutup koneksi.
Jika diberikan pada waktu status Transaksi, perintah QUIT berfungsi untuk
menutup koneksi sekaligus masuk ke status Update.
Perintah STAT
Perintah ini digunakan untuk mengetahui informasi mengenai maildrop dari user
tertentu.
  
38
Perintah LIST
Perintah
ini digunakan
untuk
mendapatkan
informasi
mengenai salah satu atau
semua pesan yang ada dalam maildrop milik suatu user.
Perintah RETR
Perintah
ini
meminta
pada
server
untuk
mengirimkan
seluruh
isi
pesan
pada
client.
Perintah DELE
Perintah ini digunakan untuk menghapus pesan yang tersimpan di server.
Perintah NOOP
Perintah ini digunakan hanya untuk mendapatkan balasan positif dari server.
Perintah RSET
Perintah ini digunakan untuk membatalkan pemberian tanda terhapus pada pesan
(akibat perintah DELE).