Aplikasi WAP Mail - USD
Transcript of Aplikasi WAP Mail - USD
Aplikasi WAP Mail
Skripsi
Untuk memenuhi salah satu syarat kelulusan
Program Sarjana (S-1)
Teknik Informatika
Oleh :
Nama : Margaretta Wiwin Krisnita Irawati
NIM : 005314064
JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA YOGYAKARTA
2007
WAP Mail Application
A THESIS
Presented as Partial Fulfilment of the Requirements
To Obtain the Sarjana Teknik Degree
In Informatics Engineering
By:
Name : Margaretta Wiwin Krisnita Irawati
NIM : 005314064
DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY YOGYAKARTA
2007
ii
ΘΘΘΘΘΘΘΘΘΘΘΘΘ
Kupersembahkan untuk :
Jesus-ku, Mama, Papa, Saudara-saudaraku, Teman-temanku, and My
Best Alen.
Terima Kasih atas segala kepercayaan, kasih, dan dorongan dalam
menyelesaikan Tugas Akhir ini.
ΘΘΘΘΘΘΘΘΘΘΘΘΘ
v
ΘΘΘΘΘΘΘΘΘΘΘΘΘ
Mencari tahu apa bakatku dan mengembalikannya pada dunia – Mike
Buettell
ΘΘΘΘΘΘΘΘΘΘΘΘΘ
vi
KATA PENGANTAR
Segala puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa
atas berkat dan rahmat-Nya, sehingga penulis dapat menyelesaikan penulisan
tugas akhir mengenai “Aplikasi WAP Mail”.
Penulisan tugas akhir ini dimaksudkan untuk memenuhi salah satu syarat
kelulusan Program Sarjana (S-1) pada Fakultas Sains dan Teknologi Jurusan
Teknik Informatika Universitas Sanata Dharma Yogyakarta.
Pada kesempatan ini, penulis ingin mengucapkan terima kasih secara
tertulis kepada pihak-pihak berikut :
1. Ir. Greg. Heliarko, S.J., S.S., BST., M.A., M.Sc., selaku Dekan Sains dan
Teknologi Universitas Sanata Dharma.
2. Agnes Maria Polina, S.Kom., M.Sc, selaku Kaprodi Teknik Informatika
Universitas Yogyakarta dan juga selaku dosen pembimbing dalam proses
penulisan tugas akhir ini.
3. Bapak Wawan, Bapak Antok, Bapak Wisnu, Bapak Albert, Bapak Agung,
Bapak Yudhi, Bapak Harris, Ibu Merry, Ibu Ridho dan segenap dosen
Teknik Informatika Universitas Sanata Dharma atas segala ilmu dan
pengetahuan yang telah diberikan.
4. Pak Belle, Mas Danang, Mas Gito, Ibu Titik, Mbak Marni dan seluruh
karyawan labotarium dan administrasi Universitas Sanata Dharma atas
bantuannya selama penulis mengurus ujian dan kelengkapan administrasi.
vii
viii
5. Wawan, Eko, Kris, dan seluruh karyawan Cosmo Group, atas bantuannya
selama penulis menitipkan komputer dan meminjam IP public perusahaan.
Terima kasih untuk kesediaannya menjaga komputer penulis.
6. Thesa, Linda, Mia, Ayu, Danang, Chandra, Yanuar, Yudhi, Merry, Dwi,
Dewa, Gina, Agnes, Agus, dan semua teman-teman yang tidak dapat
penulis sebutkan satu persatu atas semua dukungannya baik langsung
maupun tidak langsung.
7. Mbak Dewi, atas dorongan, nasihat, dan semangat untuk menghadapi ujian
dan menyelesaikan ujian, dan juga makan-makannya sebelum penulis
ujian. Terima kasih sekali atas semua yang sudah dibagikan kepada
penulis baik dalam pendidikan penulis maupun di luar pendidikan penulis.
8. Yolanda, yang telah menjadi teman curahan hati penulis dalam hal skripsi
maupun di luar skripsi. Terima kasih untuk segala hal yang telah dibagi
kepada penulis. Mari atur hidup kita, lepas dari hal-hal di belakang yang
pernah mengganggu kita.
9. dan kepada pihak-pihak yang tidak dapat disebutkan satu-persatu namun
turut membantu dalam penulisan tugas akhir ini.
Harapan penulis, semoga karya tulis ini dapat memberi manfaat bagi para
pembaca.
Terima Kasih.
Yogyakarta, 27 Agustus 2007
Margaretta Wiwin K.I
DAFTAR ISI
Halaman Judul.................................................................................................. i Halaman Persetujuani ...................................................................................... ii Halaman Pengesahan ....................................................................................... iv Halaman Persembahan..................................................................................... v Halaman Motto ................................................................................................ vi Kata Pengantar ................................................................................................. vii Daftar Isi .......................................................................................................... ix Daftar Gambar.................................................................................................. xi Daftar Tabel ..................................................................................................... xiii Abstraksi .......................................................................................................... xiv Abstract ............................................................................................................ xv Pernyataan Keaslian Karya .............................................................................. xvi BAB I PENDAHULUAN ............................................................................... 1
1.1 Latar Belakang Masalah.................................................................... 1 1.2 Rumusan Masalah ............................................................................. 2 1.3 Batasan Masalah ............................................................................... 2 1.4 Tujuan dan Manfaat Penelitian ......................................................... 3 1.5 Metodologi Penelitian ....................................................................... 3 1.6 Sistematika Penulisan ....................................................................... 4
BAB II LANDASAN TEORI ....................................................................... 6
2.1 WAP (Wireless Application Protocol).............................................. 6 2.1.1 Pengertian WAP....................................................................... 6 2.1.2 Cara Kerja WAP ...................................................................... 7 2.1.3 WAP Gateway.......................................................................... 9 2.1.4 Konfigurasi WAP Server ......................................................... 11 2.1.5 Keuntungan WAP ................................................................... 12
2.2 WML (Wireless Markup Language)................................................. 13 2.2.1 Sintaks WML ........................................................................... 14
2.3 PHP (PHP Hypertext Preprocessor)................................................. 20 2.3.1 Struktur Skrip PHP................................................................... 21 2.3.2 Sintaks dalam PHP................................................................... 22 2.3.2.1 Operator ....................................................................... 22 2.3.2.2 Struktur Kontrol ........................................................... 23 2.3.2.3 Fungsi........................................................................... 28 2.3.2.4 Penanganan Session ..................................................... 29 2.3.3 Konsep Kerja PHP ................................................................... 30 2.4 Email (Electronic Mail) .................................................................... 31 2.4.1 Mail Server............................................................................... 31 2.4.1.1 SMTP (Simple Mail Transport Protocol) Server......... 31 2.4.1.2 POP (Post Office Protocol) Server .............................. 32
ix
x
2.4.2 Format Email Menurut RFC 822 ............................................. 33 2.4.3 MIME (Multipurpose Internet Mail Extensions) ..................... 33 BAB III ANALISA DAN PERANCANGAN SISTEM............................... 35 3.1 Analisa Sistem................................................................................... 35 3.2 Cara Kerja Sistem ............................................................................. 36 3.3 Desain Antarmuka Sistem................................................................. 38 BAB IV IMPLEMENTASI DAN ANALISA SISTEM .............................. 44 4.1 Spesifikasi Hardware dan Software.................................................. 44 4.2 Konfigurasi Server ............................................................................ 45 4.2.1 Konfigurasi Jaringan ................................................................ 45 4.2.2 Konfigurasi Web Server ........................................................... 47 4.2.3 Konfigurasi Mail Server........................................................... 48 4.3 Implementasi Antarmuka Sistem ...................................................... 49 4.3.1 Login ........................................................................................ 50 4.3.2 Inbox......................................................................................... 54 4.3.3 Compose, Reply, dan Forward................................................. 56 4.3.4 Delete ....................................................................................... 57 4.3.5 Logout ...................................................................................... 58 BAB V ANALISA HASIL IMPLEMENTASI ............................................ 59 5.1 Analisa Hasil Perangkat Lunak......................................................... 59 5.2 Analisa Piranti Pengembang ............................................................. 60 BAB VI PENUTUP ........................................................................................ 62 6.1 Kesimpulan ....................................................................................... 62 6.2 Saran.................................................................................................. 62 DAFTAR PUSTAKA ..................................................................................... 64 LAMPIRAN.................................................................................................... 65
DAFTAR GAMBAR
Gambar Keterangan Halaman
2.1 Model Pemrograman WAP 8
2.2 Susunan Gateway WAP 9
2.3 Hirarki dalam WML 14
2.4 Konsep Kerja PHP 30
3.1 Konsep Kerja Sistem 36
3.2 Desain Antarmuka Login 38
3.3 Desain Antarmuka Pesan Kesalahan Login 38
3.4 Desain Antarmuka Berhasil Login 39
3.5 Desain Antarmuka Inbox 39
3.6 Desain Antarmuka Baca Email 40
3.7 Desain Antarmuka Compose 41
3.8 Desain Antarmuka Email Terkirim 42
3.9 Desain Antarmuka Email Gagal Terkirim 42
3.10 Desain Antamuka Logout 43
4.1 Konfigurasi Network Server 46
4.2 Tampilan Login 50
4.3 Tampilan Menu WAP Mail 52
4.4 Tampilan Gagal Login 53
4.5 Tampilan Inbox 54
xi
xii
4.6 Tampilan Pesan 55
4.7 Tampilan Compose 56
4.8 Tampilan Logout 58
DAFTAR TABEL
Tabel Keterangan Halaman
2.1 Tipe MIME dan Extension 12
2.2 Tag Link 17-18
2.3 Elemen Form 18-19
2.4 Elemen dalam Template 19
2.5 Operator Aritmatika 22
2.6 Operator Logika 22-23
2.7 Operator Pembanding 23
2.8 Field Header RFC 822 33
2.9 Field Header RFC 822 yang ditambahkan oleh MIME 34
xiii
ABSTRAKSI
Teknologi wireless atau mobile merupakan teknologi yang saat ini terus berkembang, karena menciptakan banyak kemungkinan baru serta sangat memudahkan akses informasi maupun komunikasi. Salah satu cara untuk bertukar informasi dan berkomunikasi adalah melalui email. WAP (Wireless Application Protocol) adalah protokol yang diciptakan khusus untuk peralatan mobile atau wireless. WAP yang terdapat di dalam ponsel, memungkinkan setiap orang yang memilikinya dapat mengakses email yang ada di Internet. Mengingat sifat ponsel yang ‘mudah dibawa ke mana saja’, siapapun dapat mengakses email mereka, kapanpun dan dimanapun.
Dalam skripsi ini, dikembangkan suatu sistem di mana user dapat mengakses email mereka melalui ponsel. Sistem menyediakan beberapa fasilitas dasar operasi email, seperti membaca email yang ada dalam kotak email (inbox), membalas email (reply), membuat email baru (compose), mengirimkan email yang ada ke pengguna lain (forward), dan menghapus email yang ada di kotak email (delete). Sistem Aplikasi WAP Mail ini dikembangkan menggunakan bahasa pemrograman WML (Wireless Markup Language) dan PHP (PHP Hypertext Preprocessor).
Hasil akhir yang diperoleh adalah sebuah sistem Aplikasi WAP Mail di mana user dapat melakukan operasi dasar email melalui ponsel yang dilengkapi dengan fasilitas WAP, atau user juga dapat mengakses email melalui komputer yang terhubung Internet dengan web browser yang mendukung WML seperti Opera.
xiv
ABSTRACT
Wireless or mobile technology is a technology which is rapidly developing because it has created many new possibilities and has made access to information and communication much easier. One way to exchange information and to communicate is by email. WAP (Wireless Application Protocol) is a protocol specifically created for mobile or wireless devices. WAP in cellular phones allows everybody with them to access email messages in the Internet. Due to the unique characteristic of a cellular phone, namely that it ‘can be easily carried everywhere’, anybody can access their email messages at any time and any place. This project has developed a system where users can access their email messages with a cellular phone. The system provides several basic facilities for email operation, such as reading messages in the email box (inbox), replying email messages (reply), composing new email messages (compose), sending email messages in the email box to other users (forward), and deleting email messages in the email box (delete). WAP Mail Application System has developed with WML (Wireless Markup Language) and PHP (PHP Hypertext Preprocessor) programming language. The final result is a WAP Mail Application System where users can perform basic email operation with a cell phone which is equipped with the WAP facility and users can also access email messages with a computer which is connected to the Internet with a web browser which supports WML, such as Opera.
xv
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa penelitian dan karya tulis
yang saya buat ini adalah hasil karya saya sendiri dan tidak menjiplak dari hasil
karya orang lain, kecuali pada bagian yang telah disebutkan dalam daftar pustaka
sebagaimana layaknya suatu karya ilmiah.
Yogyakarta, 27 Agustus 2007
Margaretta Wiwin K.I
xvi
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Email (Electronik Mail) merupakan fasilitas Internet (Interconnecting
Network) yang paling banyak digunakan. Hampir semua pelaku Internet memiliki
setidaknya satu alamat email. Dengan email, komunikasi dapat dilakukan dengan
cepat melewati batas-batas negara tanpa memperdulikan jarak dan waktu. Email
telah menjadi sarana komunikasi yang cepat dan murah.
Umumnya, jika seseorang ingin mengakses email, maka mereka
membutuhkan seperangkat PC (Personal Computer) yang tersambung ke Internet.
Sehingga mereka harus menyiapkan waktu dan tempat untuk dapat mengakses
email. Hal ini terkadang justru merepotkan mereka yang memiliki mobilitas
tinggi, yang sangat sulit untuk menemukan waktu dan tempat yang tepat untuk
mengakses email. Padahal mereka sangat membutuhkan informasi yang terdapat
pada email mereka. Karenanya, manusia terus berusaha mencari alternatif lain
untuk dapat mengakses Internet secara cepat tanpa harus melalui komputer.
Perkembangan dunia Internet saat ini, telah melahirkan suatu teknologi
yang dapat digunakan untuk mengakses Internet melalui dunia seluler. Teknologi
tersebut disebut WAP (Wireless Application Protocol). WAP adalah suatu
protokol aplikasi yang memungkinkan Internet dapat diakses oleh ponsel dan
perangkat mobile lainnya. WAP membawa informasi secara online melewati
Internet langsung menuju ponsel atau klien WAP lainnya. Dengan adanya WAP,
1
2
berbagai informasi dapat diakses setiap saat hanya dengan menggunakan ponsel.
Disamping itu, teknologi GPRS (General Packet Radio Service) juga diluncurkan
oleh sejumlah perusahaan perangkat ponsel dan jasa jaringan wireless untuk
meningkatkan kecepatan transfer data melalui ponsel, sehingga akses Internet
melalui ponsel juga dapat dilakukan secara cepat.
Dari permasalahan di atas, penulis tertarik untuk mengembangkan sistem
yang memungkinkan user untuk dapat melakukan pengaksesan email melalui
ponsel. yang disebut “Aplikasi WAP Mail”. Sistem aplikasi yang dibuat
diharapkan dapat mempermudah user untuk membaca email, membalas email,
mengirim email baru, dan juga menghapus email yang ada pada inbox mereka.
Dengan demikian, user dapat mengecek email mereka melalui perangkat nirkabel
yang ada, dimanapun, kapanpun, tanpa perlu komputer yang terhubung dengan
Internet.
1.2 Rumusan Masalah
Masalah utama yang akan dibahas pada penulisan tugas akhir ini adalah
bagaimana cara membangun aplikasi WAPsite untuk memudahkan user
mengakses email melalui ponsel atau perangkat mobile lainnya.
1.3 Batasan Masalah
Batasan masalah pada penulisan tugas akhir ini adalah sebagai berikut :
1. Sistem tidak membahas pembuatan account email / alamat email.
3
2. Email yang dapat dikirim oleh user hanya berupa text (plain text). Sistem
aplikasi juga hanya dapat membaca email yang berupa text (plain text).
3. Sistem ini tidak melayani permintaan pembuatan alamat account email
baru.
4. Konfigurasi server dan masalah keamanan tidak dibahas pada penulisan
tugas akhir ini.
1.4 Tujuan dan Manfaat Penelitian
Tujuan penelitian ini adalah membangun suatu sistem berbasis teknologi
WAP (Wireless Application Protocol) atau GPRS (General Packet Radio Service)
yang memudahkan user untuk mengakses email melalui perangkat nirkabel.
Sedangkan manfaat dari penelitian ini adalah memberikan alternatif lain
bagi user untuk mengakses email melalui perangkat nirkabel selain melalui
komputer yang terhubung Internet.
1.5 Metodologi Penelitian
Metode penelitian yang digunakan dalam penulisan tugas akhir ini adalah
sebagai berikut :
1. Survei kebutuhan program
Mempersiapkan software, hardware, dan perangkat-perangkat lain yang
dibutuhkan oleh sistem.
4
2. Studi pustaka
Mempelajari konsep mengenai WAP, WML, PHP dan email melalui
berbagai referensi. Referensi yang digunakan adalah buku-buku, laporan-
laporan, karya ilmiah, majalah, koran, internet dan semua tulisan yang
berhubungan.
3. Mengembangkan perangkat lunak menggunakan metode RPL (Rekayasa
Perangkat Lunak) terstruktur dengan tahap-tahap sebagai berikut :
a. Analisa sistem
b. Perancangan sistem
c. Implementasi sistem (pembuatan program)
4. Menguji program
Melakukan pengujian sistem untuk mengetahui kelebihan dan
kekurangannya sehingga sistem dapat berjalan secara optimal.
1.6 Sistematika Penulisan
Sistematika penulisan tugas akhir ini adalah sebagai berikut :
BAB I PENDAHULUAN
Berisi tentang latar belakang, rumusan masalah, batasan masalah,
tujuan penelitian, metode penelitian dan sistematika penulisan
tugas akhir.
BAB II LANDASAN TOERI
Berisi tentang landasan teori yang dipakai untuk pembahasan
penulisan tugas akhir.
5
BAB III ANALISA DAN PERANCANGAN SISTEM
Berisi tentang gambaran sistem, analisa sistem dan perancangan
sistem yang akan dibuat.
BAB IV IMPLEMENTASI SISTEM
Berisi cara-cara untuk mengimplementasi analisis dan perancangan
yang telah dibuat sebelumnya ke dalam bahasa yang dimengerti
mesin. Implementasi dimulai dengan cara menginstal perangkat
lunak yang akan digunakan untuk membuat aplikasi ini dan
membuat interface sistem.
BAB V ANALISA HASIL IMPLEMENTASI
Berisi tentang analisa hasil-hasil implementasi dan juga analisa
peranti pengembang yang digunakan pada penelitian ini.
BAB VI PENUTUP
Berisi tentang kesimpulan dari implementasi yang telah dilakukan
dalam tugas akhir ini.
BAB II
LANDASAN TEORI
Berikut ini akan diuraikan secara garis besar mengenai WAP (Wireless
Application Protocol), WML (Wireless Markup Language), PHP (Personal Home
Page tools), dan Email (Electronic Mail).
2.1 WAP (Wireless Application Protocol)
2.1.1 Pengertian WAP
WAP (Wireless Application Protocol) adalah suatu protokol aplikasi yang
memungkinkan Internet dapat diakses oleh ponsel dan perangkat wireless atau
mobile lainnya. WAP membawa informasi secara online melewati Internet
(Interconnecting Networking) langsung menuju ke ponsel atau client WAP
lainnya. Dengan adanya WAP, berbagai informasi dapat diakses setiap saat hanya
dengan menggunakan ponsel.
Protokol ini awalnya dikembangkan oleh WAP Forum
(http://www.wapforum.org) pada tahun 1997 yang didirikan oleh Ericsson,
Motorola, Nokia dan Unwired Planet (sekarang phone.com). WAP Forum
merupakan organisasi nirlaba yang bertujuan untuk menetapkan standar dalam
memberikan akses Internet ke kelas konsumen melalui alat wireless. Standar ini
membantu platform global untuk menciptakan jalur yang berbeda tetapi sejalan
dengan Internet.
6
7
2.1.2 Cara Kerja WAP
Cara kerja WAP hampir sama dengan cara kerja Internet saat ini.
Dibutuhkan WAP Gateway untuk menjembatani ponsel dengan Internet dalam
mengirim dan menerima data. Hal ini sama halnya dengan pengguna PC
(Personal Computer) yang membutuhkan ISP (Internet Service Provider) sebagai
gateway dalam menjembatani PC dengan Internet. Disamping itu, ponsel yang
digunakan juga harus WAP-enabled, yaitu sudah dilengkapi dengan teknologi
WAP yang bisa digunakan untuk mengakses Internet.
Terdapat tiga bagian utama dalam akses WAP, yaitu perangkat wireless
yang mendukung WAP, WAP gateway sebagai perantara, dan web server sebagai
sumber dokumen. Dokumen yang berada dalam web server dapat berupa
dokumen HTML (Hypertext Markup Language) ataupun WML (Wireless Markup
Language). Dokumen WML, khusus ditampilkan melalui browser dari perangkat
WAP. Sedangkan dokumen HTML yang seharusnya ditampilkan melalui web
browser, sebelum dibaca melalui browser WAP diterjemahkan lebih dahulu oleh
gateway agar dapat menyesuaikan dengan perangkat WAP. Saat ponsel ingin
meminta sebuah informasi yang ada di server, ponsel harus melewati WAP
gateway dulu. Begitu juga sebaliknya.
8
Gambar 2.1 Model Pemrograman WAP (WAP-100-WAPArch-19980430-a.pdf, hlm. 12)
Seperti halnya menampilkan Internet dari web browser, untuk
menampilkan WAP dibutuhkan WAP browser. Di dalam ketentuan ponsel, ini
disebut sebagai microbrowser. Seperti halnya mengetikkan URL (Uniform
Resource Locator) untuk mengakses website, hal yang sama juga akan dilakukan
untuk mengakses WAPsite di ponsel. Dengan mengakses web server melalui ISP
(Internet Service Provider) dan login ke Internet, maka halaman WAP akan
dikirimkan dan dimunculkan di layar ponsel.
Model pemrograman WAP terdiri atas tiga bagian, yaitu WAP Client yang
mengirim permintaan informasi, gateway sebagai penerjemah antara WAP dan
HTTP (Hyper Text Transfer Protocol), serta server yang memproses permintaan
dari gateway untuk kemudian menjawabnya. Jawaban yang merupakan proses
dari CGI (Common Gateway Interface) script ini akan dikirim ke klien melalui
gateway sebagai perantara. Hasil konversi yang dilakukan oleh WAP gateway
mampu memperkecil ukuran dari informasi yang akan dikirimkan ke client.
9
2.1.3 WAP Gateway
WAP gateway berfungsi untuk meneruskan permintaan informasi dari
ponsel menuju server lewat HTTP (Hyper Text Transfer Protocol) request, dan
sebaliknya, dari server menuju ke ponsel lewat HTTP reponse. Selain itu, WAP
gateway juga berfungsi sebagai encoder dan decoder (fungsi sebagai modem).
Encoder berfungsi mengkodekan atau menerjemahkan isi web ke dalam format
WML (Wireless Markup Language) yang lebih padat untuk mengurangi ukuran
dan jumlah yang dikirim melalui jaringan wireless, sedangkan fungsi dari decoder
adalah kebalikan dari fungsi encoder.
Untuk melihat kemampuan gateway dalam menerjemahkan dokumen
sehingga dapat dibaca oleh WAP browser, gambar 2.3 berikut ini menunjukkan
diagram yang berisi susunan dari WAP gateway :
WSP
WDP/Adoption
WTP
WTLS
HTTP
TCP/IP
Bearers InternetFirewallet
Gambar 2.2 Susunan Gateway WAP (Ardiansyah & Akhmadi, Aplikasi Pemrograman W@P, Jakarta, PT Elex Media Komputindo,
2003, hlm. 6)
10
1. WSP (Wireless Session Protocol) berfungsi sebagai pembuka atau mengakhiri
suatu koneksi jaringan. WSP sendiri terbagi menjadi dua buah session, yaitu
koneksi yang khusus untuk berinteraksi dengan operasi yang terjadi pada
WTP (Wireless Transaction Protocol) dan yang kedua adalah WDP (Wireless
Datagram Protocol), koneksi yang berkaitan erat dengan keamanan data.
Selain hal tersebut WSP juga mendukung:
a. Fungsi dari HTTP / 1.1 serta juga pengodean data.
b. Pemeriksaan data yang reliable dan unreliable.
c. Pengontrolan waktu akses data.
2. WTP (Wireless Transaction Protocol) berfungsi memeriksa format data,
konversi data dan atau pengodean yang akan ditransmisikan, misalnya:
a. Melakukan pemeriksaan keabsahan data pengguna.
b. Pemeriksaan terhadap nomor pesan yang akan dikirim.
c. Melakukan sinkronisasi data transaksi.
3. WTLS (Wireless Transport Layer Security) adalah sebuah protokol yang
berfungsi sebagai keamanan data yang disesuaikan oleh standar industri TLS
(Transport Layer Security) yang tentunya mendukung SSL (Secure Sockets
Layer). WTLS tersebut ditujukan pada penggunaan aplikasi WAP, yang terdiri
dari:
a. Integritas data, mengenai keabsahan dari data yang akan dikirim.
b. Privacy, menyangkut kerahasiaan data, dimana data yang akan dikirim
tidak akan bisa didapat oleh orang lain yang tidak bersangkutan.
c. Authentication, menyangkut kebenaran jati diri pengguna.
11
d. Denial of service protection, pemeriksaan dan pembuktian
pengamanan data yang valid.
4. WDP (Wireless Datagram Protocol) merupakan kelanjutan dari WTLS yang
mampu berkomunikasi dengan bearers. Bertugas untuk melakukan transmisi
data dalam format biner melalui media gateway, serta melakukan definisi
pengalamatan jaringan yang nantinya akan dapat dikenali oleh lapisan
bearers.
5. Bearers terdiri atas data switch, short message, dan paket data. Bearers
melakukan fungsi untuk dapat melakukan transfer data dari suatu unit
informasi yang berisi alamat dan melakukan pemeriksaan kesalahan (error
checking) serta melakukan penundaan transfer hingga proses yang dilakukan
sudah benar.
6. HTTP Interface digunakan untuk melayani penerimaan WAP content dari
Internet menggunakan ponsel.
2.1.4 Konfigurasi WAP Server
Agar browser dapat menampilkan dokumen WML dengan benar, web
server yang sudah diinstal harus diatur konfigurasinya. Konfigurasi untuk
mengatur cara menangani dokumen dari server yang diminta oleh browser disebut
dengan MIME (Multipurpose Internet Mail Extension).
Beberapa tipe MIME yang biasanya digunakan :
“text/html” untuk dokumen HTML
“image/gif” untuk dokumen GIF
“image/jpg” untuk dokumen JPG
12
WAP juga mempunyai tipe MIME khusus yang harus ditambahkan dalam
konfigurasi MIME, sehingga ponsel dapat mengakses dokumen WAP di server.
Tipe MIME yang digunakan oleh WAP adalah sebagai berikut :
Deskripsi File Extension MIME Type
WML Source .wml Text/vnd.wap.wml
Wireless Bitmap .wbmp Image/vnd.wap.wbmp
WML Script Source .wmls Text/vnd.wap.wml
Compiled WML .wmlc Application/vnd/wap.wmlc
Compiled WML Script .wmlsc Application/vnd.wap.wmlscript
WML Script .wsc Text/vnd.wap.wmlscript
WML Script .wmlscript Text/vnd.wap.wmlscript
Tabel 2.1 Tipe MIME dan Extension (Ridwan Sanjaya & Onno W. Purbo, Membuat Aplikasi W@P dengan PHP, Jakarta, PT Elex
Media Komputindo, 2001, hlm. 20) 2.1.5 Keuntungan WAP
1. Tidak ada kepemilikan metode dalam mengakses Internet dengan
standar WAP baik pada isi maupun layanan.
2. Network yang independent karena WAP bekerja pada seluruh jaringan
selular yang ada.
3. Metode WAP telah diadopsi oleh hamper 95% produsen telepon
selular di seluruh dunia dalam memanfaatkan wireless internet access
dan sedang diimplementasikan pada semua frekuensi.
4. WAP adalah suatu standar protokol dan aplikasinya, yakni WAP
browser yang dapat digunakan pada seluruh sistem operasi.
13
5. Dengan menggunakan teknologi GPRS (General Packet Radio
System), perhitungan akses dihitung berdasarkan jumlah bit yang
terkoneksi, yang harganya sekitar Rp 20 per kilo byte.
2.2 WML (Wireless Markup Language)
WAP menggunakan bahasa komputasi yang dikenal sebagai Wireless
Markup Language (WML) yang mirip dengan HTML. Bahasa komputer yang
pintar ini mengubah informasi berupa teks dari halaman situs dan
menampilkannya ke layar ponsel. WML merupakan subset dari XML (eXtensible
Markup Language).
Jika HTML mempunyai Java Script untuk membuat halaman-halaman
didalamnya menjadi interaktif, WML juga mempunyai versi sendiri dari Java
Script yang disebut WML Script. Namun berbeda dengan Java Script yang bisa
dimasukkan ke dalam HTML, WML Script tidak bisa dijadikan satu dengan
WML dan harus berdiri sendiri sebagai satu file script khusus yang berekstensi
wmls.
Sebuah dokumen WML terdiri atas tiga bagian utama yang membentuk
struktur dari dokumen tersebut. Ketiga buah bagian utama tersebut adalah header,
template, dan card. Bagian header berfungsi untuk menyatakan versi XML dari
suatu dokumen WML, template berfungsi untuk memberikan tambahan pilihan
pada menu options atau tambahan tombol di beberapa browser, dan card
berfungsi untuk mendefinisikan halaman-halaman yang berada dalam satu file
wml. Penulisan template dan card berada di dalam tag <wml> … </wml>.
14
TEMPLATEprevious, next, home
CARD 1Halaman Utama
CARD 2Halaman Help
CARD 3Halaman Contact
DECK
Gambar 2.3 Hirarki dalam WML (Ridwan Sanjaya & Onno W. Purbo, Membuat Aplikasi W@P dengan PHP, Jakarta, PT Elex
Media Komputindo, 2001, hlm. 33)
2.2.1 Sintaks WML
1. Penulisan tag
Penulisan tag dilakukan agar dokumen WML dapat ditampilkan pada
browser sesuai dengan keinginan. Biasanya, sebuah tag diawali dengan tanda
lebih kecil (<) dan diakhiri dengan tanda lebih besar (>). Tag biasanya
merupakan pasangan, yang disebut sebagai tag awal dan tag akhir. Tag awal
dinyatakan dalam bentuk <nama_tag> dan diakhiri dengan tag akhir yang
dinyatakan dalam bentuk </nama_tag>.
Tidak semua tag ditulisi berpasangan. Ada pula yang dinamakan single
tag atau tag tunggal, yang hanya terdiri atas satu tag awal saja. Untuk
penulisan tag tunggal, sebelum menuliskan penutup tag, lebih dahulu ditulis
15
dengan tanda garis miring. Format penulisan untuk tag tunggal adalah sebagai
berikut :
<nama_tag/>
Komentar dapat ditulis di dalam dokumen WML. Meskipun tidak akan
diproses oleh browser, tulisan tersebut dapat dijadikan sebagai alat
dokumentasi. Berikut ini format penulisan komentar :
<! – tulis komentarmu di sini -->
2. Atribut
Di dalam beberapa tag terdapat atribut yang menyertai dalam pengaturan
fungsinya dalam mengatur isi dokumen. Penulisan atribut biasanya diletakkan
pada tag awal dan berisi nilai-nilai tertentu. Misalkan dalam tag <p>, yang
digunakan untuk membuat paragraph baru, terdapat atribut align yang
digunakan untuk mengatur perataan teks. Nilai dari atribut dapat diisi dengan
“center”, “left” dan “right”. Contoh penulisannya adalah sebagai berikut :
<p align=”left”> kalimat-kalimat </p>
3. Membuat card
Dalam sebuah dokumen WML dapat diisi dengan sebuah card yang
cukup banyak. Atribut-atribut di dalam tag <card> … </card> antara lain :
a. title = “judul card”
Berfungsi untuk menampilkan topik tertentu dari halaman WAP.
b. id = “nama card”
Berfungsi untuk mengidentifikasi sebuah card untuk keperluan
tujuan navigasi dari card lain.
16
c. ontimer = “dokumen tujuan”
Berfungsi untuk menyatakan tujuan card setelah waktu tertentu.
d. newcontext = “true atau false”
Berfungsi untuk mengatur penggunaan isi variabel baru untuk
dokumen WAP. Jika diisi dengan true, maka seluruh isi variabel
yang digunakan adalah baru. Sedangkan jika diisi dengan false, isi
variabel yang digunakan adalah lama.
4. Memformat teks
WML dapat menampilkan teks secara tebal, miring ataupun dengan garis
bawah. Pada dasarnya, terdapat dua pengelompokkan dalam memformat teks,
yaitu Physical Style yang memformat teks secara fisik teks dan Logical Style
yang memformat teks berdasarkan kandungan teks yang telah disepakati
secara internasional.
a. Physical Style
Physical style adalah jenis format yang diberikan pada teks berdasarkan
tag yang memang digunakan untuk mengatur tebal huruf, miring, maupun
garis bawah. Tag-tag yang bisa digolongkan ke dalam physical style
adalah :
<b> … </b> untuk menebalkan teks
<i> … </i> untuk membuat teks terlihat miring
<u> … </u> untuk menggarisbawahi teks
<big> … </big> untuk membesarkan teks
<small> … </small> untuk mengecilkan teks
17
b. Logical Style
Sedangkan logical style adalah jenis format yang diberikan pada teks
berdasarkan kesepakatan internasional terhadap kandungan teks tertentu.
Saat ini untuk memberikan penekanan teks (emphasis) menggunakan
huruf miring. Jika suatu saat standar internasional mengubah penekanan
teks menggunakan garis bawah, secara otomatis teks yang diformat
menggunakan logical style akan berubah menyesuaikan standar yang baru.
Tag-tag yang bisa digolongkan ke dalam logical style adalah :
<em> … </em> untuk memberikan penekanan
terhadap teks
<strong> … </strong> untuk menyatakan teks dengan
penekanan yang kuat
5. Membuat hubungan antardokumen (link)
Antara halaman yang satu dengan yang lain dapat berhubungan dengan
adanya link. Selain halaman, link juga dapat menghubungkan alamat satu
dengan yang lain.
WML Tag Keterangan
<anchor></anchor> Atribut :
title=“title”
Di dalam achor terdapat tag <go href = “URL”/>
sebagai penunjuk alamat atau dokumen tertentu.
18
<a></a> Atribut :
Href=“URL”
Tabel 2.2 Tag Link
6. Membuat form
Fasilitas form memungkinkan interaksi antara pemilik suatu website atau
wapsite dengan pengunjungnya. Form dapat digunakan untuk berbagai
keperluan, diantaranya untuk mengumpulkan informasi, saran dan penawaran
melalui website atau wapsite tersebut. Struktur penulisan form dalam sebuah
card adalah sebagai berikut :
<card id=”contoh” title=”Form”>
<do type=”accept” label=”Hasil”>
<go href=”tujuan”/>
</do>
<p>
<input type=”text” name=”nama_variabel”/>
</p>
</card>
Pada contoh di atas, elemen form terdiri dari dua tag utama yaitu tag do,
yang menunjukkan tujuan jika input dieksekusi dan tag untuk isian, yang bisa
berupa input, select atau keduanya.
WML Tag Keterangan
<do> … </do> Atribut :
type=”accept”
19
Di dalam tag ini berisi elemen yang digunakan untuk
memberikan tujuan setelah isian diproses.
<input/> Text Box (Kotak Isian)
<select> …
</select>
Select Box (Kotak Pilihan)
<option> …
</option>
Pilihan dalam select box
Tabel 2.3 Elemen Form
7. Membuat template
Template merupakan bagian utama dari WML yang sifatnya optional
(bisa ditulis, bisa juga tidak). Kegunaan template adalah memberikan perintah
eksekusi suatu tindakan, baik berupa tombol (sebagian WAP browser)
maupun tambahan pilihan dalam menu Options di sebelah kiri bawah ponsel.
Berikut ini elemen yang digunakan untuk menyusun template.
WML Tag Keterangan
<do> … </do> Parameter :
type=”type”
Type :
accept, prev, help, reset, options, delete
label=”label” (maksimum 6 karakter)
Name=”name”
Tabel 2.4 Elemen dalam Template
Sedangkan elemen di dalam <do> … </do> adalah sebagai berikut :
20
<prev/> Kembali ke halaman sebelumnya
<refresh/> Mengulang kembali pemanggilan halaman
<noop/> Tidak melakukan tindakan apapun. Biasanya
digunakan untuk menghilangkan fungsi
template yang aktif
<go href=”tujuan”/> Untuk menuju ke alamat tertentu
2.3 PHP (PHP Hypertext Preprocessor)
Menurut dokumen resmi PHP, PHP singkatan dari PHP Hypertext
Preprocessor. PHP itu sendiri singkatan dari Personal Home Pages tools. PHP
merupakan bahasa berbentuk skript yang ditempatkan di dalam server dan
diproses di server. Hasilnya akan dikirimkan ke client, tempat pemakai
menggunakan browser.
Secara khusus, PHP dirancang untuk membentuk web dinamis. Artinya,
dapat membentuk suatu tampilan berdasarkan permintaan terkini. Pada awalnya,
PHP dirancang untuk diintegrasikan dengan web server Apache. Namun,
belakangan ini PHP juga dapat bekerja dengan web server, seperti PWS (Personal
Web Server), IIS (Internet Information System) dan Xitami.
PHP bersifat free (bebas dipakai), artinya tidak perlu membayar apapun
untuk menggunakan perangkat lunak ini. Keunggulan PHP dilihat dari sifatnya
server-side, antara lain :
1. Tidak diperlukan kontabilitas browser atau harus menggunakan browser
tertentu, karena server yang akan mengerjakan skrip PHP. Hasil yang
21
dikirmkan kembali ke browser umumnya bersifat teks atau gambar
sehingga pasti dikenal oleh browser apapun.
2. Dapat memanfaatkan sumber-sumber aplikasi yang dimiliki oleh server,
misalnya koneksi ke database.
2.3.1 Struktur Skrip PHP
Pada umumnya skrip PHP berada dalam kode HTML. Kode PHP yang
berada di dalam kode HTML dapat disimpan dalam ekstensi .php. Sedangkan
kode PHP yang berada di dalam kode XML dapat disimpan juga dalam ekstensi
.php.
Delimiter merupakan karakter atau kumpulan karakter yang membedakan
antara skrip dengan atau tag dengan text biasa dalam HTML ataupun XML. Untuk
PHP, delimiter yang digunakan adalah sebagai berikut :
1. Untuk dokumen SGML (Standardized General Markup Language) /
HTML :
<? skrip PHP ?>
2. Untuk dokumen XML :
<? php skrip PHP ?>
3. Untuk yang tidak mendukung PHP :
<script language=”php”>
skrip php
<script/>
4. Dapat juga menggunakan delimiter ASP (Active Server Page) :
<% skrip PHP %>
22
jika menggunakan delimiter ASP, maka harus mengedit file php.ini, yaitu
pada bagian asp_tags nilainya harus on.
2.3.2 Sintaks dalam PHP
2.3.2.1 Operator
Operator merupakan simbol-simbol yang digunakan untuk melakukan
operasi-operasi matematis ataupun operasi string. Beberapa operator yang dikenal
dalam PHP antara lain :
1. Operator Aritmatika
Operator Aritmatika adalah operator yang digunakan dalam operasi dasar
matematika. Operator-operator yang temasuk operator aritmatika :
Operator Arti
+ Penambahan
- Pengurangan
* Perkalian
/ Pembagian
% Modulus
Tabel 2.5 Operator Aritmatika
2. Operator Logika
Operator logika digunakan untuk membandingkan dua atau lebih
pernyataan dan menghasilkan nilai true atau false. Operator logika sangat
berguna untuk menentukan pilihan apabila ada dua atau lebih kondisi yang
berbeda. Operator-operator yang termasuk operator logika :
Operator Arti
And Operator dan
Or Operator atau
23
Xor Operator atau eklusif
! Operator tidak/bukan (not)
&& Operator dan
|| Operator atau
Tabel 2.6 Operator Logika
3. Operator Pembandingan
Operator pembandingan adalah operator yang digunakan untuk
membandingkan dua atau lebih nilai, variabel, atau pernyataan dan
menghasilkan nilai. Operator-operator pembanding adalah :
Operator Nama
== Sama
=== Identik
!= Tidak sama
!== Tidak Identik
< Lebih kecil
> Lebih besar
<= Lebih kecil atau sama dengan
>= Lebih besar atau sama dengan
Tabel 2.7 Operator Pembanding
Operator identik dan tidak identik hanya dikenal dalam PHP4.
2.3.2.2 Struktur Kontrol
Dalam pembuatan sebuah aplikasi sangat jarang eksekusi sebuah skrip
berjalan lurus dari awal hingga akhir, biasanya ditemui beberapa kondisi yang
mengharuskan alur program bercabang. Struktur kontrol digunakan untuk
membantu pengambilan keputusan mengenai alur program mana yang dipilih.
Struktur kontrol yang disediakan PHP antara lain :
24
1. If
struktur kontrol if merupakan struktur kontrol paling lazim dimiliki oleh
semua bahasa pemrograman. Struktur kontrol ini digunakan untuk
mengambil keputusan apabila ada sebuah kondisi yang ditemui. Jika
kondisi tersbut bernilai true, maka pernyataan di dalam struktur if akan
dijalankan. Sebaliknya jika bernilai false, pernyataan di dalam struktur if
akan diabaikan dan langsung menuju ke pernyataan sesudahnya. Sintaks
penggunaan if adalah sebagai berikut :
if (kondisi)
pernyataan;
Jika pernyataan yang akan dijalankan terdiri dari dua baris atau lebih maka
bentuknya adalah sebagai berikut :
if (kondisi){
pernyataan;
pernyataan;
}
2. If…Else
Struktur If…Else hampir sama dengan if, tetapi struktur ini menyediakan
pilihan untuk diambil jika sebuah kondisi bernilai false. Pilihan tersebut
disediakan dalam pernyataan else. Jadi jika kondisi bernilai true, maka
pernyataan di bawah if akan dieksekusi, tetapi jika bernilai false,
pernyataan di bawah else akan dieksekusi. Sintaks penggunaan If…Else
adalah sebagai berikut :
25
If (kondisi)
{
Pernyataan1;
}else{
pernyataan2;
}
3. If …ElseIf…Else
Struktur ini memberikan lebih banyak kemungkinana kondisi. Sintaksnya
adalah sebagai berikut :
If (kondisi1)
{
Pernyataan1;
} Elseif (kondisi2) {
Pernyataan2;
…
} Elseif(kondisiN) {
PernyataanN;
} else {
Pernyataan;
}
4. Switch
Struktur switch dapat dikatakan sebagai pengganti struktur
if…Elseif…Else, terutama jika pilihan yang tersedia banyak dan masing-
26
masing pilihan berupa suatu nilai yang pasti. Sintaks penggunaan switch
sebagai berikut :
Switch (variabel) {
Case nilai1:
Pernyataan1;
Break;
Case nilai2:
Pernyataan2;
Break;
Case nilaiN:
PernyataanN;
Break;
[default:
pernyataan]
}
5. While
Struktur while digunakan untuk mengulang-ulang sebuah blok pernyataan
selama suatu kondisi terpenuhi atau bernilai true. Kondisi tersebut akan
dievaluasi di bagian awal blok pernyataan, jadi jika kondisi terpenuhi,
maka blok pernyataan tersebut akan diabaikan. Sintaks penggunaan while
adalah sebagai berikut :
While (kondisi) {
Pernyataan;
27
}
6. Do … while
Strukutr do … while hampir sama dengan while, hanya saja evaluasi
kondisi diberikan pada akhir blok pernyataan. Oleh karena itu, blok
pernyataan pasti kan dieksekusi terlebih dahulu dan jika pada akhir blok
kondisi yang diberikan tidak terpenuhi, maka perulangan dihentikan.
Tetapi jika kondisi terpenuhi maka perulangan akan diteruskan. Sintaks
penggunaan do … while adalah sebagai berikut :
Do {
Pernyataan;
} while kondisi;
7. For
Struktur for digunakan untuk melakukan perulangan (iterasi) dengan
batas-batas jumlah perulangan yang telah diketahui. Sintaks penggunaan
struktur for adalah sebagai berikut :
For (awal; akhir; langkah) {
Pernyataan;
}
8. Break
Struktur break digunakan untuk menghentikan sebuah perulangan, baik
pada struktur for maupun while. Sintaks penggunaan struktur break dapat
dilihat pada contoh struktur pada switch.
28
2.3.2.3 Fungsi
Fungsi merupakan alat bantu pemrograman yang mempermudah dalam
mengerjakan suatu tugas tertentu. Sebuah fungsi merupakan rangkaian dari
perintah-perintah pemrograman, yang disusun sedemikian rupa sehingga
terangkum dalam pemrograman. Dalam PHP terdapat fungsi yang sengaja
disediakan dalam PHP dan ada juga fungsi yang dibuat sendiri oleh pemakai. Ada
beberapa fungsi yang disediakan dalam PHP dan fungsi yang mendasar dan
umum digunakan, yaitu fungsi string. Fungsi string merupakan fungsi yang
digunakan untuk mengolah data yang berupa string. Beberapa fungsi string antara
lain :
1. Fungsi Echo() dan Print ()
Fungsi ini berguna untuk menampilkan suatu string atau teks ke browser.
Sintaksnya sebagai berikut :
Echo(string)
Print(string)
2. Fungsi Strlen()
Fungsi ini digunakan untuk mengukur panjang karakter sebuah string.
Sintaksnya sebagai berikut :
Strlen(string)
Sebuah spasi akan dihitung sabagai sebuah karakter.
3. Fungsi Substr()
Fungsi ini digunakan untuk mengambil suatu bagian sebuah string.
Sintaksnya sebagai berikut :
29
Substr(string,mulai[,panjang])
String akan diambil dari karakter ke-mulai sejumlah panjang.
2.3.2.4 Penanganan Session
PHP menyediakan fungsi session untuk penyimpanan suatu data agar
nilainya tidak hilang dalam suatu sesion. Fungsi-fungsi session antara lain :
1. Fungsi Session_strat()
Fungsi ini digunakan untuk memulai session. Sintaksnya adalah sebagai
berikut :
Session_strat()
2. Fungsi Session_destroy()
Fungsi ini digunakan untuk mengakhiri session. Sintaksnya adalah sebagai
berikut :
Session_destroy()
3. Fungsi Session_name()
Fungsi ini digunakan untuk mengambil atau menentukan nama sebuah
session. Sintaksnya adalah sebagai berikut :
Session_name([nama])
Jika argumen nama tidak disertakan, fungsi digunakan untuk mengambil
nama sebuah session. Sebaliknya jika argumen nama disertakan, fungsi
digunakan untuk memberi nama session.
4. Fungsi Session_module_name()
Fungsi ini digunakan untuk mengambil atau menentukan nama sebuah
modul atau session. Sintaksnya adalah sebagai berikut :
30
Session_module_name([modul])
Jika argumen modul tidak disertakan, fungsi digunakan untuk mengambil
nama sebuah modul session. Sebaliknya jika argumen modul disertakan,
fungsi digunakan untuk memberi nama pada session.
2.3.3 Konsep Kerja PHP
Client Side Server Side
1 Browser
2, 6
3
5
4
Skrip PHP
Mesin PHP
Web Server
Gambar 2.4 Konsep Kerja PHP
Keterangan :
1. Browser meminta (request) sebuah halaman PHP kepada web server.
2. Server akan memecah halaman PHP. Bagian PHP (berupa kode
HTML/WML), akan langsung dikirim ke browser, sedangkan bagian PHP
(berupa kode PHP) yaitu skrip PHP akan dikirim ke mesin PHP.
3. Skrip PHP dikirim ke mesin PHP untuk diproses.
31
4. Setelah data diolah oleh mesin PHP, maka hasilnya dikirim ke web server.
5. Dari web server data tersebut akan dikirim ke browser sebagai output
sesuai dengan permintaan.
2.4 Email (Electronic Mail)
Email merupakan komponen utama yang paling banyak digunakan dalam
komunikasi informasi saat ini. Hampir semua pemakai jaringan internet di seluruh
dunia mempunyai alamat email. Email digunakan bukan saja untuk bertukar
informasi antar pemakai jaringan internet, tetapi juga sebagai sarana untuk
mengakses komponen service yang ada di Internet. Format penulisan alamat email
adalah sebagai berikut:
dimana username adalah nama yang diberikan untuk menandai email dan sebagai
alamat email. Karakter @ (at) merupakan karakter standar bagi penamaan email
untuk memisah username dan servername. Servername adalah nama server yang
melayani email box dan domain adalah domain server tersebut.
2.4.1 Mail Server
Mail server adalah suatu mail robot pada suatu komputer yang bertindak
sebagai moderator dalam setiap disitribusi dan pengiriman email. Dalam sebuah
mail server masih dibagi menjadi dua buah server, yaitu:
2.4.1.1 SMTP (Simple Mail Transport Protocol) Server
SMTP server atau biasa disebut MTA (Mail Transfer Agent) merupakan
server yang berhubungan langsung dengan pengirim email. SMTP server ini
32
biasanya akan mendistribusikan sendiri email yang diterima dari pengirim email.
Secara umum SMTP server dibagi menjadi dua, yaitu:
1. MTA (Mail Transfer Agent) Lokal
MTA lokal hanya digunakan untuk meneruskan email dalam satu
organisasi yang sama atau komunikasi antar MTA lokal ke MTA lokal
yang lain, namun masih dalam satu organisasi yang sama. Komunikasi
MTA lokal menggunakan SMTP pada Intranet.
2. Relay agent
Relay agent adalah MTA yang terletak pada sisi terluar dalam sebuah
jaringan dan relay agent secara langsung terhubung dengan Internet.
Email yang keluar dari Intranet menuju ke Internet oleh MTA lokal akan
dikirim ke relay agent terlebih dahulu. Tanggung jawab untuk
mengirimkan email ke alamat tujuan berubah menjadi milik relay agent.
Letak relay agent yang berhadapan langsung dengan Internet
mengharuskan mailbox yang berfungsi sebagai relay agent harus
didaftarkan di DNS server sebagai Mail Exchanger (MX).
2.4.1.2 POP (Post Office Protocol) Server
POP merupakan protokol yang digunakan untuk pengelolaan mail. POP
yang standar untuk Internet saat ini adalah POP3 (POP – Version 3). Protokol ini
dimaksudkan untuk mengijinkan client mengakses secara dinamis mailnya yang
ada di POP server. Karena POP memang dimaksudkan hanya untuk pengaksesan
mail, baik mengambil ataupun menghapus, maka protokol ini tidak dilengkapi
33
dengan operasi-operasi lain yang dapat memanipulasi mail yang ada di server
secara luas.
2.4.2 Format Email Menurut RFC 822
Email terdiri dari primitive amplop, beberapa buah field header, baris
kosong, dan kemudian badan pesan. Setiap field header terdiri dari sebuah baris
text ASCII yang berisi nama field, tanda titik dua, dan nilai. RFC 822 merupakan
standard lama, dan tidak membedakan secara jelas amplop dengan field header,
sedangkan standard yang baru membedakan keduanya dengan jelas.
Header Arti
To: Alamat email penerima utama
Cc: Alamat email penerima sekunder
Bcc: Alamat email Blind Carbon Copies
From: Orang yang membuat pesan
Sender: Alamat email pengirim actual
Received: Baris yang ditambahkan oleh setiap transfer agent sepanjang rute
Return-Path: Dapat dipakai untuk mengidentifikasi lintasan balik ke pengirim
Tabel 2.8 Field Header RFC 822
2.4.3 MIME (Multipurpose Internet Mail Extensions)
Munculnya format email yang baru ini disebabkan oleh karena munculnya
masalah-masalah dalam mengirim dan menerima, misalnya pesan menggunakan
bahasa dengan aksen tertentu, alphabet yang digunakan bukan huruf latin, atau
bahkan tidak berisi teks sama sekali (misal audio dan viedo). Solusi dari masalah
ini diajukan dalam RFC 1341 dan direvisi di dalam RFC 1521, yang disebut
34
Multipurpose Internet Mail Extensions (MIME). Ide dasar dari MIME adalah
melanjutkan pemakaian format RFC 822, tetapi menambahkan struktur tertentu
pada badan pesan dan menentukan aturan encoding bagi pesan-pesan non-ASCII.
MIME mendefinisikan 5 buah header pesan baru, seperti ditunjukkan pada
tabel 2.9.
Header Arti
MIME-Version: Mengidentifikasi versi MIME
Content-Description: String yang dapat dibaca manusia yang menyatakan
isi pesan.
Content-Id: Identifier unik
Content-Transfer-
Encoding:
Cara badan pesan dikemas untuk ditransmisikan
Content-Type: Sifat pesan
Tabel 2.9 Field Header RFC 822 yang ditambahkan oleh MIME
BAB III
ANALISA DAN PERANCANGAN SISTEM
Bab ini merupakan pembahasan mengenai analisis dan perancangan sistem
yang akan dibangun meliputi analisis sistem, cara kerja sistem, dan desain
antarmuka sistem.
3.1 Analisa Sistem
Salah satu layanan Internet yang paling banyak diakses oleh pengguna
Internet adalah email. Layanan email ini merupakan alternatif bagi para pengguna
Internet untuk dapat berkomunikasi dengan mudah dan cepat. Karenanya tidak
mengherankan jika saat ini banyak perusahaan-perusahaan yang kemudian
mengelola mail server mereka sendiri. Selama ini untuk dapat mengakses email,
dibutuhkan komputer dengan akses Internet. Sementara adakalanya para
pengguna Internet yang ingin mengecek email mereka tidak sedang berada di
depan komputer.
Melihat kendala diatas maka dikembangkanlah sistem yang
memungkinkan user untuk mengakses mail server melalui ponsel yang
mempunyai fasilitas WAP (Wireless Application Protocol) atau GPRS (General
Packet Radio Service) melalui alamat Internet yang tersedia. User dapat langsung
mengakses inbox mereka melalui perangkat nirkabel tanpa perlu menggunakan
komputer yang terhubung Internet. Hal ini sangat mempermudah user mengingat
ruang dan waktu yang dibutuhkan untuk mengakses komputer. Ponsel atau
35
36
perangkat nirkabel sangat lebih kecil dan dapat dengan mudah dibawa kemana-
mana dibandingkan dengan komputer.
Fasilitas yang disediakan sistem untuk user merupakan fasilitas-fasilitas
dasar dalam mengakses email, mengingat keterbatasan tampilan layar ponsel
dengan layar monitor. Fasilitas tersebut antara lain baca email (inbox), balas email
(reply), kirim email lagi (forward), kirim email (compose), dan hapus email
(delete). Sebelumnya seorang user harus mendaftar untuk mendapatkan account
email terlebih dahulu sebelum dapat menggunakan sistem ini.
3.2 Cara Kerja Sistem
Konsep kerja sistem ini akan digambarkan pada Gambar 3.1 beserta
penjelasannya.
Internet
Client AGSM Provider Server
Client B
Gambar 3.1 Konsep Kerja Sistem
Pada Gambar 3.1, client A akan mengirim email kepada client B. Client A
mengirim email dengan menggunakan perangkat nirkabel, dan client B membuka
37
emailnya melalui komputer dengan koneksi Internet. Client A menekan tombol
perangkat nirkabel untuk terhubung ke alamat URL yang menyediakan aplikasi
untuk mengakses mail server. Pertama kali, client A melakukan permintaan untuk
mengirimkan email ke WAP Gateway menggunakan protokol WAP. WAP
Gateway ini terdapat pada server provider kartu GSM yang digunakan oleh client
A. Dari WAP Gateway akan diciptakan HTTP request berdasarkan permintaan
yang dikirimkan oleh client A. Selanjutnya permintaan tersebut, akan diteruskan
ke server yang dimaksud.
HTTP request ini diproses oleh web server, dimana selanjutnya web server
ini akan menghubungi mail server pengirim atau client A. Mail server client A
kemudian mencari mail server yang bertanggung jawab mengelola email si
penerima atau client B tersebut. Setelah menemukannya, server email pengirim
tadi lalu mengirimkan email ke server email penerima tersebut. Kemudian client
B mengakses mail server-nya untuk meminta email yang belum dibacanya
melalui komputer yang memiliki koneksi Internet.
Protokol komunikasi yang digunakan oleh client dan server adalah Post
Office Protocol (POP) dan Simple Mail Transport Protocol (SMTP). Protokol
POP digunakan untuk mengambil (download) email dari server dan protokol
SMTP digunakan untuk mengirim email ke server. Server SMTP lokal kemudian
mengirim email ke server SMTP yang bertanggung jawab mengelola email
pengguna yang dituju.
38
3.3 Desain Antarmuka Sistem
Desain antarmuka yang dibangun sistem ini, ditujukan untuk membantu
user agar dapat login ke mail server dan mengaksesnya.
Back
Login
User ID : < … > Password : < … > Login
Gambar 3.2 Desain Antarmuka Login
Gambar 3.2 merupakan desain login untuk user. Pada tampilan ini user
harus memasukkan user ID dan password untuk dapat mengakses inbox mereka.
Sebelumnya user harus sudah memiliki account email.
Back
Welcome Incorrect Name and
Password Login
Gambar 3.3 Desain Antarmuka Pesan Kesalahan Login
Jika user ID dan password yang diinputkan oleh user tidak benar maka
akan muncul pesan kesalahan seperti yang tampak pada Gambar 3.3. User dapat
mencoba untuk login kembali.
39
Back
Welcome Username Inbox Compose Logout
Gambar 3.4 Desain Antarmuka Berhasil Login
Jika user berhasil login, maka Gambar 3.4 akan muncul pada ponsel atau
perangkat nirkabel user. Pada desain ini, user dapat langsung mengecek email
yang masuk melalui menu inbox, mengirim email melalui compose, atau logout.
Inbox Username Inbox – x Messages Isi satu Isi dua Isi tiga Next Prev Compose Logout
Back
Gambar 3.5 Desain Antarmuka Inbox
Jika user memilih menu inbox, maka tampilan pada layar ponsel akan
tampak seperti Gambar 3.5. Pada antarmuka ini, user dapat melihat daftar inbox
mereka dengan urutan dari email terbaru. User juga dapat mengetahui jumlah
email yang ada pada inbox mereka. Dari desain ini, user juga dapat langsung
melakukan compose atau logout.
40
Back
Email Username Inbox – x Messages Subject: < … > From: < … > To: < … > Date: < … > Isi email Next Prev Replay Delete Forward Compose Logout
Gambar 3.6 Desain Antarmuka Baca Email
Gambar 3.6 merupakan desain antarmuka jika user membaca email
mereka. Pada desain ini, urutan header email yang ditampilkan adalah subject,
from, to, date, dan terakhir isi dari email itu sendiri. User dapat membaca email
berikutnya atau email sebelumnya dengan fasilitas next dan prev. Selain itu user
juga dapat membalas email ini (replay), mengirimkannya lagi (forward),
menghapusnya (delete), compose, atau logout.
41
Compose To: < … > Cc: < … > Subject: < … > Messages: < … > Send Cancel
Back
Gambar 3.7 Desain Antarmuka Compose
Jika user memilih menu compose, maka desain antarmukanya akan seperti
pada Gambar 3.7. Inputan-inputan yang dimasukkan oleh user pada antarmuka
compose adalah sebagai berikut:
1. alamat penerima (to)
2. tembusan ke alamat email lain (carbon copy / Cc)
3. judul email (subject)
4. pesan email itu sendiri (messages)
Desain antarmuka untuk menu reply dan forward mirip dengan desain antarmuka
compose.
42
Back
Email Status Your message has been sent successfully. You may now do something else. Inbox Compose Logout
Gambar 3.8 Desain Antarmuka Email Terkirim
Jika user berhasil melakukan pengiriman email, maka akan muncul pesan
seperti pada Gambar 3.8.
Gambar 3.9 Desain Antarmuka Email Gagal Terkirim
Email Status Invalid email address. Please try again. Inbox Compose Logout
Back
Sementara jika pesan yang dikirimkan oleh user gagal, maka akan muncul
pesan seperti pada Gambar 3.9.
43
Back
Logout
You have successfully logout
Login
Gambar 3.10 Desain Antarmuka Logout
Gambar 3.10 merupakan desain halaman jika user memilih menu logout.
User dapat memilih menu login, jika ingin kembali mengakses mail servernya.
BAB IV
IMPLEMENTASI SISTEM
Setelah selesai merancang dan menganalisis sistem yang akan dibuat,
langkah selanjutnya adalah mencoba mengimplementasikan ke dalam bahasa
pemrograman yang dapat dimengerti oleh mesin.
4.1 Spesifikasi Hardware dan Software
Sistem akan dikembangkan menggunakan alamat domain wimail.net yang
berfungsi sebagai web server dan mail server. Pengembangan sistem ini
menggunakan spesifikasi hardware dan software seperti yang tertera di bawah ini.
Spesifikasi hardware server :
1. Prosesor Intel(R) Celeron(R) CPU 2.00 Ghz
2. Harddisk 40G
3. Memori 256Mb
4. Sis 900 PCI Fast Ethernet Adapter
Spesifikasi hardware client :
1. Komputer yang terkonfigurasi dengan jaringan atau ponsel yang
memiliki fasilitas WAP (Wireless Application Protocol) atau GPRS
(General Packet Radio Service).
Spesifikasi software server :
1. Sistem Operasi Fedora Core 4
2. Web Server httpd-2.0.54-10
44
45
3. Mail Server qmail-1.03
4. PHP versi 5
Spesifikasi sofware client :
1. Komputer dengan WAP browser Opera versi 7.52 untuk komputer
Windows dan Opera versi 9.21 untuk komputer Linux.
2. Ponsel Sony Erickson versi z600.
4.2 Konfigurasi Server
4.2.1 Konfigurasi Jaringan
Langkah pertama yang harus dilakukan adalah mengkonfigurasi komputer
yang akan dijadikan sebagai web server dan mail server. Konfigurasi ini meliputi
pemberian IP Address untuk kartu jaringan komputer server, mengeset subnet
mask, menentukan default gateway, dan pemberian hostname. Pada komputer
server yang telah diinstal dengan sistem operasi Fedora Core 4 langkah tersebut
dapat dilakukan dengan memilih Dekstop > System Setting > Network, yang
hasilnya dapat dilihat pada gambar berikut ini.
46
Gambar 4.1 Konfigurasi Network Server
Untuk mengeset IP Address dapat dilakukan dengan memilih menu Edit,
kemudian mengisikan IP Address, subnet mask, dan default gateway. Pemberian
nama host dapat dilakukan dengan memilih menu DNS atau Hosts. Nama host
yang diberikan untuk jaringan ini adalah wimail.net. Hostname ini selanjutnya
juga akan menjadi nama domain untuk jaringan ini. Pilihan Activate atau Deactive
pada menu di atas, berfungsi untuk mengaktifkan atau menonaktifkan kartu
jaringan.
Alternatif lain untuk mengatur konfigurasi jaringan dapat dilakukan
dengan mengedit /etc/sysconfig/network untuk memberi nama host dan mengedit
/etc/sysconfig/network-scripts/ifcfg-eth0 untuk mengatur IP Address, subnet mask,
47
dan default gateway. Sebenarnya masih banyak terdapat alternatif lain untuk
memberikan konfigurasi jaringan yang penulis tidak dapat jelaskan disini.
Kemudian untuk mengecek apakah IP Address sudah dapat diterapkan
oleh kartu jaringan adalah dengan memanggil program ifconfig. Jika setelah
menjalankan ifconfig muncul tampilan nama kartu jaringan berikut IP Address
yang dimasukkan sebelumnya dan beberapa keterangan lain, maka kartu jaringan
sudah dapat digunakan. Untuk memastikan lagi apakah server sudah dapat
dikenali dalam jaringan adalah dengan melakukan ping dari atau ke server itu
sendiri.
4.2.2 Konfigurasi Web Server
Karena aplikasi yang dikembangkan merupakan aplikasi yang berjalan
dengan menggunakan protokol WAP, dan dikembangkan dengan WML (Wireless
Markup Language) maka perlu ditambahkan beberapa konfigurasi pada web
server supaya browser dapat menampilkan dokumen WML dengan benar.
Konfigurasi ini disebut dengan MIME (Multipurpose Internet Mail Extension).
Konfigurasi web server pada server ini, dilakukan dengan mengedit
/etc/httpd/conf/httpd.conf. Untuk menambahkan tipe MIME pada WAP dilakukan
dengan menambahkan pada bagian AddType. Konfigurasinya adalah sebagai
berikut :
AddType text/vnd.wap.wml .wml AddType image/vnd.wap.wbmp .wbmp AddType text/vnd.wap.wmls .wmls AddType application/vnd.wap.wmlc .wmlc AddType application/vnd.wap.wmlscriptc .wmlsc AddType text/vnd.wap.wmlscript .wsc AddType text/vnd.wap.wmlscript .wmlscript
48
4.2.3 Konfigurasi Mail Server
Mail server yang digunakan adalah qmail versi 1.03. Di samping instalasi
qmail itu sendiri, ada beberapa paket lain yang harus ditambahkan untuk
membantu kerja dari qmail itu sendiri. Paket-paket tersebut adalah :
1. qmail yang merupakan inti dari mail server itu sendiri dan juga merupakan
aplikasi untuk pengiriman email yang biasa disebut sebagai MTA (Mail
Transfer Agent).
2. ucspi-tcp adalah aplikasi untuk tcpserver, merupakan paket yang
digunakan sebagai utiliti koneksi client server yang menggunakan
protokol TCP (Transport Control Protocol).
3. daemon-tool merupakan daemon untuk mengelola aplikasi-aplikasi
pendukung utiliti yang digunakan oleh sistem operasi untuk mengatur
segala proses yang berjalan seperti qmail dan segala tambahan paket
lainnya. Paket ini akan melakukan starting service dan me-restart apabila
ada layanan yang mati.
4. vpopmail adalah POP3 server, yaitu paket tambahan dari qmail untuk
menangani virtual email domain dalam satu mail server. Hal ini untuk
memudahkan dalam penanganan atau administrasi sistem yang baik.
5. vqadmin merupakan domain manager berbasis web yang digunakan untuk
mengelola email, baik penambahan, penghapusan alamat email,
penambahan maupun penghapusan mailinglist, dan juga penambahan
maupun penghapusan domain.
49
6. qmailadmin adalah aplikasi berbasis web yang digunakan untuk mengelola
user pada tiap domain.
Sebenarnya masih banyak paket-paket tambahan lain yang berfungsi untuk
membantu kerja qmail, namun pada implementasi tugas akhir ini, paket-paket
yang telah disebutkan di atas sudah cukup untuk menunjang implementasi tugas
akhir penulis.
4.3 Implementasi Antarmuka Sistem
Aplikasi WAPmail itu sendiri dikembangkan dengan menggunakan bahasa
pemrograman WML (Wireless Markup Language) untuk tampilannya dan PHP
(PHP Hypertext Preprocessor) untuk mengakses mail server-nya. Pada
implementasi antarmuka ini, wap browser yang digunakan adalah opera. Berikut
ini akan dijelaskan bagaimana sistem dibentuk dan dibuat berdasarkan
tampilannya.
50
4.3.1 Login
Gambar 4.2 Tampilan Login
Gambar 4.2 merupakan tampilan pertama yang muncul ketika mengakses
WAPsite ini. Pada tampilan ini, user harus memasukkan name dan password
untuk dapat mengakses emailnya. Tampilan ini dibuat dengan menggunakan
sintaks wml sebagai berikut :
51
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="login" title="Login"> <p align="left"><small>Name:</small><br/> <input type="text" name="nm"/> </p> <p align="left"><small>Password:</small><br/> <input type="password" name="pswd"/> </p> <p> <anchor title="Login"><go href="login.php" method="post"> <postfield name="Name" value="$(nm)"/> <postfield name="Password" value="$(pswd)"/> <postfield name="login" value="1" /></go><small>Login</small> </anchor> </p> </card> </wml>
Dua baris pertama pada kode program menunjukkan fungsi PHP untuk
menulis header WML, sehingga browser dapat mengenal file PHP sebagai
halaman WAP. Postfield digunakan untuk mengirim variabel yang diawali dengan
tanda $ ke server dengan nama (name) yang telah ditentukan. Sehingga nantinya
yang dikenali dalam server adalah variabel dengan nama (name) yang telah
ditentukan tadi. Misal <postfield name="Name" value="$(nm)"/>, mengirimkan variabel
$nm ke server dengan nama name. Maka yang akan dikenali dalam server adalah
variabel $name.
Metode yang digunakan untuk mengirimkan data ke server adalah metode
post dan akan diarahkan pada skrip login.php yang akan menangani proses
pendekodean data-data form. Dari sini, sistem akan mengecek apakah name dan
password yang dimasukkan oleh user sesuai dengan data yang ada di mail server.
Jika data yang dimasukkan benar, maka user akan menemui tampilan seperti
tampak pada Gambar 4.3.
52
Gambar 4.3 Tampilan Menu WAP Mail
Pada tampilan ini, user dapat langsung mengecek emailnya (inbox),
mengirim email (compose), atau keluar dari aplikasi (logout). Skrip program dari
tampilan tersebut adalah sebagai berikut :
<? $mbox = imap_open("{localhost/pop3:110}", $_POST['Name'], $_POST['Password']); $error = imap_errors(); $total_psn = imap_num_msg($mbox); if($mbox) { $_SESSION['Name']=$_POST['Name']; $_SESSION['Password']=$_POST['Password']; ?> <a href="inbox.php">Inbox</a> - <? echo $total_psn; ?> Messages<br/> <? echo "<a href=\"compose.php\">Compose</a><br/>"; echo "<a href=\"logout.php\">Logout</a>"; } else { echo "<p align=\"center\"><small>Incorrect Name and Password<br/> <a href=\"index.wml\">Login</a><br/></small></p>"; } ?>
Pada skrip program di atas terdapat fungsi imap dari PHP. Fungsi imap ini
digunakan untuk mengakses email dari server. Fungsi-fungsi imap dari PHP yang
digunakan pada aplikasi ini akan dijelaskan pada pembahasan-pembahasan
berikutnya. Fungsi imap yang pertama digunakan adalah imap_open. Fungsi ini
53
digunakan untuk membuka inbox user. Pada aplikasi ini fungsi imap_open akan
melakukan koneksi pada server pop3 melalui port 110 dengan name dan
password yang tersedia pada mail server. Hasil dari fungsi ini akan disimpan
melalui variabel $mbox. Variabel selanjutnya adalah $error yang berfungsi untuk
menyimpan nilai dari fungsi imap_errors. Fungsi imap_errors akan
mengembalikan semua kesalahan imap yang terjadi. Sementara variabel
$total_psn berfungsi untuk menyimpan hasil yang didapat imap_num_msg. Fungsi
imap_num_msg digunakan untuk mengetahui jumlah pesan atau email yang
terdapat pada mailbox atau inbox.
Gambar 4.4 Tampilan Gagal Login
Jika name dan password yang diinputkan oleh user tidak tersedia, maka
Gambar 4.4 akan muncul. Pada tampilan ini user dapat mencoba lagi untuk login.
54
4.3.2 Inbox
Gambar 4.5 Tampilan Inbox
Gambar 4.5 adalah tampilan yang akan muncul, jika user memilih menu
inbox. Pada tampilan ini akan diketahui berapa jumlah pesan yang terdapat pada
mailbox user yang bersangkutan. Selanjutnya user akan melihat subject dari
masing-masing pesan menurut pesan yang terbaru. Pesan-pesan ini akan
ditampilkan sebanyak lima buah pada tiap halamannya. Pada user
[email protected] dalam Gambar 4.5, pada inbox-nya terdapat enam pesan,
maka dibutuhkan dua halaman untuk menampilkan masing-masing subject dari
email. Lima pada halaman pertama dan satu pada halaman kedua.
$header = @imap_header($mbox, $nopesan); $struktur_psn = @imap_fetchstructure($mbox, $nopesan);
55
Fungsi php imap selanjutnya yang digunakan supaya header subject dari
masing-masing pesan dapat muncul adalah imap_header dan imap_fetchstructure.
Fungsi imap_header digunakan untuk membaca header dari masing-masing
pesan. Pada tampilan kali ini header yang digunakan adalah subject. Sementara
fungsi imap_fetchstructure digunakan untuk membaca struktur dari pesan.
Gambar 4.6 Tampilan pesan
Gambar 4.6 merupakan tampilan yang akan muncul, jika user memilih
salah satu subject pesan yang sebelumnya ditampilkan. Pada Gambar 4.6, terlihat
bahwa header email yang ditampilkan adalah subject, from, to, date, dan pesan itu
sendiri. Jika user telah selesai membaca, pilihan yang tersedia adalah membaca
pesan berikutnya (next), membalas pesan (reply), menghapus pesan (delete),
56
mengirimkannya lagi (forward), mengirim pesan baru (compose), atau keluar dari
aplikasi (logout).
4.3.3 Compose, Reply, dan Forward
Gambar 4.7 Tampilan Compose
Tampilan pada Gambar 4.7 akan muncul jika user memilih menu compose.
Pada menu ini, user dapat membuat email baru untuk mengirimkannya kepada
user lain. Beberapa header dari pesan yang bisa diisikan oleh user adalah
penerima pesan (to), tembusan (cc), tembusan yang tidak diketahui oleh pihak lain
(bcc), judul pesan (subject), dan pesan itu sendiri (body).
57
4.3.4 Delete
Fasilitas delete akan muncul jika user berada pada halaman baca email.
User tidak dapat menghapus email jika belum membuka email yang dimaksud.
Skrip program untuk fasilitas delete ini adalah sebagai berikut :
<? session_start(); include "function.php"; if (!isset($_SESSION['Name']) || !isset($_SESSION['Password'])) { header("Location: index.wml"); } else { $mbox = @imap_open("{localhost/pop3:110}", $_SESSION['Name'], $_SESSION['Password']); $error = @imap_errors(); $hapus_pesan = $_GET["hpspesan"]; @imap_delete($mbox, $hapus_pesan); @imap_close($mbox, CL_EXPUNGE); header("location:inbox.php"); }; ?>
Pada skrip program di atas, fungsi imap_delete digunakan untuk
menghapus email yang sebelumnya telah disimpan dalam variabel hapus_pesan.
Kemudian fungsi imap_close akan menutup koneksi fungsi php imap yang dibuat
dan kembali ke halaman inbox.
58
4.3.5 Logout
Gambar 4.8 Tampilan Logout
Jika user memilih menu logout, maka Gambar 4.8 akan muncul. Pilihan
login digunakan jika user ingin masuk lagi ke dalam inbox mereka. Cuplikan kode
program logout dapat dilihat sebagai berikut ini :
unset ($_SESSION["SESSION"]); unset ($_SESSION["SESSION_Name"]); unset ($_SESSION["SESSION_Password"]);
Fungsi unset digunakan untuk menghapus variabel sesion yang
sebelumnya telah terbentuk.
BAB V
ANALISA HASIL IMPLEMENTASI
Pada bab ini akan dibahas mengenail analisa hasil program dan juga
analisa piranti pengembang.
5.1 Analisa Hasil Perangkat Lunak
Secara umum, aplikasi yang dikembangkan dapat menampilkan hasil yang
menjadi tujuan penelitian awal penelitian ini, yaitu mempermudah user dalam
mengakses email. User dapat melakukan fasilitas-fasilitas yang disediakan oleh
sistem ini melalui WAP browser baik dari komputer maupun ponsel dengan
mudah dan cepat. Teknologi WAP (Wireless Application Protocol) dan GPRS
(General Packet Radio Service) sangat membantu ketika user mengakses sistem
ini melalui ponsel.
Meskipun demikian, sistem ini masih memiliki beberapa kekurangan.
Kekurangan dari sistem ini adalah sebagai berikut :
1. Fasilitas akses email yang bisa dilakukan oleh user terbatas pada baca
email (inbox), balas email (reply), kirim email lagi (forward), kirim email
(compose), dan hapus email (delete).
2. Sistem tidak dapat menampilkan file attachment yang berupa text (plain
text).
3. Sistem tidak dapat memberitahukan user jika ada email yang memuat
attachment.
59
60
5.2 Analisa Piranti Pengembang
Secara umum, server web dan server mail dapat berjalan dengan baik.
Proses pengiriman dan penerimaan email dapat berjalan lancar. Penulisan
program dengan menggunakan bahasa pemrograman WML dan PHP sejauh ini
belum menemui masalah yang berarti. Permasalahan terjadi pada sisi client.
Dalam penelitian ini penulis menggunakan WAP browser sebanyak tiga buah,
yaitu Opera versi 7.52 untuk komputer dengan sistem operasi Windows, Opera
versi 9.21 untuk komputer Linux, dan WAP browser pada ponsel Sony Ericson
tipe z600.
Dari ketiga browser yang digunakan semuanya memberikan hasil yang
berbeda. Hasil dari ketiga WAP browser tersebut adalah sebagai berikut :
1. Browser Opera 7.52 pada Windows dapat melakukan fasilitas-fasilitas
yang disediakan oleh sistem dengan baik. Permasalahan muncul, ketika
browser ini selalu mengambil data yang telah diisikan pada inputan
sebelumnya di halaman yang sama.
2. Browser Opera 9.21 pada Linux dapat melakukan fasilitas baca, kirim,
dan hapus email dengan baik. Browser ini mengalami masalah ketika
melakukan fasilitas reply dan foward. Browser tidak dapat menampilkan
variabel-variabel yang seharusnya ditampilkan ketika kedua halaman ini
dibuka. Selain itu, browser ini juga memiliki masalah seperti pada Opera
untuk Windows.
61
3. Pada ponsel Sony Ericson z600, sistem dapat berjalan dengan baik, jika
user mengisi semua inputan yang disediakan oleh sistem. Misal pada
halaman login, user harus mengisi name dan password, supaya browser
dapat memproses data. Jika salah satu dibiarkan kosong, maka ponsel ini
akan memunculkan pesan peringatan bagi user untuk mengisi data. Hal
ini juga terjadi pada halaman compose, reply, dan forward dimana
ketiganya halaman tersebut terdapat lima inputan yang harus diisi, yaitu
to, cc, bcc, subject, dan message. Browser ini juga memiliki masalah
seperti dua browser yang telah disebutkan sebelumnya.
BAB VI
PENUTUP
Pada bagian akhir dari penulisan skripsi ini dicantumkan beberapa
kesimpulan dan saran dari hal-hal yang terkait dengan perancangan dan
implementasi aplikasi yang telah dijabarkan pada bab-bab sebelumnya.
5.1 Kesimpulan
1. Secara umum, aplikasi yang dibuat ini dapat berjalan dengan baik,
sehingga dapat digunakan sebagai prototype untuk pengembangan sistem
yang sesungguhnya.
2. Pembacaan email dapat berjalan dengan baik pada tiga buah browser yang
digunakan dalam penelitian ini.
3. Proses pembalasan dan pengiriman email juga dapat berjalan dengan baik
pada tiga buah browser yang digunakan dalam penelitian ini.
5.2 Saran
Sebagai bahan pertimbangan untuk mengembangkan sistem ke arah yang
lebih baik dan bermanfaat, ada beberapa saran yang dapat diberikan :
1. Sistem dapat memberitahukan pada user jika ada email yang memuat
attacment.
2. Sistem dapat menampilkan attachment dari email yang berupa text (plain
text).
62
63
3. Adanya perbaikan dalam penanganan variabel yang telah diinputkan
sebelumnya supaya tidak muncul lagi jika halaman yang bersangkutan
dipanggil kembali.
4. Menambahkan operasi-operasi dalam pengaksesan email seperti
pembacaan file attachment yang berbentuk teks, pengelompokan email,
penyimpanan email yang terkirim maupun yang akan dikirim.
DAFTAR PUSTAKA
Jhony H. Sembiring, Jaringan Komputer Berbasis Linux, Jakarta : PT Elex Media Komputindo, 2001.
Setiawan Suryatmoko, Membangun Server Email Berbasis Web, Jakarta : PT Elex Media Komputindo, 2003.
Samuel Prakoso, Tomy, Onno W. Purbo, Email Server Qmail, Jakarta : PT Elex Media Komputindo, 2003.
Albertus Dwiyoga W, Membangun Mail Server Andal dengan Fedora dan Qmail, Jakarta : PT Elex Media Komputindo, 2004.
Ridwan Sanjaya, Onno W. Purbo, Membuat Aplikasi WAP dengan PHP, Jakarta : PT Elex Media Komputindo, 2001.
Ardiansyah & Akhmadi, Aplikasi Pemrograman WAP, Jakarta : PT Elex Media Komputindo, 2003.
Gregorius Agung, WAP Programming dengan WML, Yogyakarta : Penerbit Andi Offset, 2001.
Abdul Kadir, Dasar Pemrograman Web Dinamis Menggunakan PHP, Yogyakarta : Penerbit Andi Offset, 2002
www.qmailrocks.org
64
LAMPIRAN
1. Skrip index.wml
<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="index" title="Login"> <p align="left"><small>Name:</small><br/> <input type="text" name="nm"/> </p> <p align="left"><small>Password:</small><br/> <input type="password" name="pswd"/> </p> <p> <anchor title="Login"><go href="login.php" method="post"> <postfield name="Name" value="$(nm)"/> <postfield name="Password" value="$(pswd)"/> <postfield name="login" value="1" /></go><small>Login</small> </anchor> </p> </card> </wml>
2. Skrip login.php
<? session_start(); Header('Content-type:text/vnd.wap.wml'); echo ('<?xml version="1.0" ?>'); echo ('<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">'); ?> <wml> <template> <do type="prev" label="Back"> <prev/>
65
66
</do> </template> <card id="login" title="Welcome <?=$_POST['Name']?>"> <p><small> <? $mbox = imap_open("{localhost/pop3:110}", $_POST['Name'], $_POST['Password']); $error = imap_errors(); $total_psn = imap_num_msg($mbox); if($mbox) { $_SESSION['Name']=$_POST['Name']; $_SESSION['Password']=$_POST['Password']; ?> <a href="inbox.php">Inbox</a> - <? echo $total_psn; ?> Messages<br/> <? echo "<a href=\"compose.php\">Compose</a><br/>"; echo "<a href=\"logout.php\">Logout</a>"; } else { echo "<p align=\"center\"><small>Incorrect Name and Password<br/> <a href=\"index.wml\">Login</a><br/></small></p>"; } ?> </small></p> </card> </wml>
3. Skrip inbox.php
<? session_start(); header('Content-type:text/vnd.wap.wml'); echo ('<?xml version="1.0" ?>'); echo ('<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">'); ?> <?
67
$mbox = @imap_open("{localhost/pop3:110}", $_SESSION['Name'], $_SESSION['Password']); $error = imap_errors(); $total_psn = imap_num_msg($mbox); if ($total_psn > 5 && isset($_GET['halm'])) { $jml_halm = ceil($total_psn / 5); $no_halm = $_GET['halm']; $psn_plg_atas = $total_psn - (($no_halm - 1) * 5); $psn_plg_bwh = $psn_plg_atas - 4; if ($psn_plg_bwh < 1) { $psn_plg_bwh = 1; }; } elseif ($total_psn > 5) { $jml_halm = ceil($total_psn / 5); $no_halm = 1; $psn_plg_atas = $total_psn; $psn_plg_bwh = $total_psn - 4; if ($psn_plg_bwh < 1) { $psn_plg_bwh = 1; }; } else { $no_halm = 1; $jml_halm = 1; $psn_plg_atas = $total_psn; $psn_plg_bwh = 1; }; ?> <wml> <template> <do type="prev" label="Back"> <prev/> </do>
68
</template> <card id="inbox" title="Inbox <?=$_SESSION['Name']?>"> <p><small> <? if ($total_psn > 0) { if (isset($_GET["halm"])) { ?> <a href="inbox.php?halm=<? echo $_GET["halm"]; ?>">Inbox</a> - <? echo $total_psn; ?> Messages <? } else { ?> <a href="inbox.php">Inbox</a> - <? echo $total_psn; ?> Messages <? } ?> <br/><br/> <? for ($nopesan=$psn_plg_atas; $nopesan >= $psn_plg_bwh; $nopesan--) { $header = @imap_header($mbox, $nopesan); $struktur_psn = @imap_fetchstructure($mbox, $nopesan); ?> <? if (isset($header->Subject)) { if ($header->Subject != "") { ?> <a href="message.php?id=<? echo $nopesan; ?>"><? echo $header->Subject; ?></a> <? } else { ?>
69
<a href="message.php?id=<? echo $nopesan; ?>"><? echo "[No Subject]" ?></a> <? } } else { ?> <a href="message.php?id=<? echo $nopesan; ?>"><? echo "[No Subject]" ?></a> <? } ?> <br/> <? } if ($jml_halm >1) { if ($no_halm > 1) { ?> <br/> <a href="inbox.php?halm=<? echo $no_halm -1; ?>">Prev</a> <? } ?> <br/> <? if ($no_halm < $jml_halm ) { ?> <a href="inbox.php?halm=<? echo $no_halm +1; ?>">Next</a> <? } } ?> <? } else { echo "You currently have no mail"; }
70
@imap_close($mbox); ?> <br/> <a href="compose.php">Compose</a> <br/> <a href="logout.php">Logout</a> </small></p> </card> </wml>
4. Skrip message.php
<? session_start(); Header('Content-type:text/vnd.wap.wml'); echo ('<?xml version="1.0" ?>'); echo ('<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">'); if (!isset($_SESSION['Name']) || !isset($_SESSION['Password'])) { header("Location: index.wml"); } else { $mbox = @imap_open("{localhost/pop3:110}", $_SESSION['Name'], $_SESSION['Password']); $error = imap_errors(); $total_psn = imap_num_msg($mbox); $nopesan = $_GET["id"]; $header = @imap_header($mbox, $nopesan); ?> <wml> <template> <do type="prev" label="Back"> <prev/> </do> </template> <card id="email" title="Email <?=$_SESSION['Name']?>"> <p> <small>
71
<a href="inbox.php">Inbox</a> - <? echo $total_psn; ?> Messages <br/><br/> <? if (isset($header->Subject)) { if ($header->Subject != "") { $subjek_psn = $header->Subject; } else { $subjek_psn = "No Subject"; }; } else { $subjek_psn = "No Subject"; }; ?> Subject: <? echo $subjek_psn; ?> <br/> From: <? echo htmlspecialchars($header->fromaddress); ?> <br/> To: <? echo htmlspecialchars($header->toaddress); ?> <br/> <? if (isset($header->ccaddress)) { echo "CC: " . htmlspecialchars($header->ccaddress); }; ?> Date: <? if (isset($header->Date)) { if ($header->Date != "") { echo substr($header->Date, 0, 22); } else
72
{ echo "Unknown"; }; } else { echo "Unknown"; }; ?> <br/> <? $bdn_email = @imap_fetchbody( $mbox, $nopesan, 1 ); echo htmlentities($bdn_email); ?> <br/> <br/> <? if ($total_psn > $nopesan) { ?> <a href="message.php?id=<? echo $nopesan+1; ?>">Prev<br/></a> <? } if (1 < $nopesan) { ?> <a href="message.php?id=<? echo $nopesan-1; ?>">Next<br/></a> <? } @imap_close($mbox); ?> <br/> <a href="reply.php?pesanid=<? echo $nopesan; ?>">Reply</a><br/> <a href="delete.php?hpspesan=<? echo $nopesan; ?>">Delete</a><br/> <a href="forward.php?pesanid=<? echo $nopesan; ?>">Forward</a><br/> <a href="compose.php">Compose</a><br/> <a href="logout.php">Logout</a><br/> </small> </p> </card> </wml> <? };
73
?>
5. Skrip compose.php
<? session_start(); header('Content-type:text/vnd.wap.wml'); echo ('<?xml version="1.0" ?>'); echo ('<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">'); if (!isset($_SESSION['Name']) || !isset($_SESSION['Password'])) { header("Location: index.wml"); } else { $mbox = @imap_open("{localhost/pop3:110}", $_SESSION['Name'], $_SESSION['Password']); $total_psn = imap_num_msg($mbox); $error = imap_errors(); ?> <wml> <template> <do type="prev" label="Back"> <prev/> </do> </template> <card id="compose" title="Compose <?=$_SESSION['Name']?>"> <p> </p> <p align="left"><small>To:</small> <input type="text" name="to"/> </p> <p align="left"><small>Cc:</small> <input type="text" name="cc"/> <!--<a href="compose.php?cc=1"><small>Tambah CC</small></a>--> </p> <p align="left"><small>Bcc:</small> <input type="text" name="bcc"/>
74
</p> <p align="left"><small>Subject:</small> <input type="text" name="subject"/> </p> <p align="left"><small>Message:</small> <input type="text" name="body"/> </p> <p> <anchor title="Send"><go href="send.php" method="post"> <postfield name="to" value="$(to)"/> <postfield name="cc" value="$(cc)"/> <postfield name="bcc" value="$(bcc)"/> <postfield name="subject" value="$(subject)"/> <postfield name="body" value="$(body)"/> <postfield name="send" value="1"/></go><small>Send</small> </anchor> <br/> <anchor title="Cancel"><go href="inbox.php" method="post"> <postfield name="cancel" value="1"/></go><small>Cancel</small> </anchor> </p> </card> </wml> <? }; ?>
6. Skrip send.php
<? session_start(); include "function.php"; $trouble=0; if (!isset($_SESSION['Name']) || !isset($_SESSION['Password'])) { header("Location: index.wml"); } else {
75
header('Content-type:text/vnd.wap.wml'); echo ('<?xml version="1.0" ?>'); echo ('<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">'); $mbox = @imap_open("{localhost/pop3:110}", $_SESSION['Name'], $_SESSION['Password']); $total_psn = imap_num_msg($mbox); $error = imap_errors(); function cek_almt_email($kar) { $kar = trim($kar); $awal = strrpos($kar, "<"); $akhir = strrpos($kar, ">"); if ($awal !== false) { $kar_baru = substr( $kar , $awal+1 , $akhir-$awal-1); } else { $kar_baru = $kar; }; return $kar_baru; }; function cek_kar_email($kar) { $pola_kar = "/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/"; if (preg_match($pola_kar, $kar)) { $cocok = TRUE; } else { $cocok = FALSE; }; return $cocok; }; ?>
76
<wml> <template> <do type="prev" label="Back"> <prev/> </do> </template> <card id="status" title="Email Status"> <? if (isset($_POST["to"])) { if ($_POST["to"]==""){ $trouble=1; ?> <p><small>You have not entered a destination. Please try again.</small></p> <? } }; if (trim($_POST["to"]) != "") { $to = trim($_POST["to"]); $slrh_almt = $to; }; if (trim($_POST["cc"]) != "") { $cc = trim($_POST["cc"]); $slrh_almt = $slrh_almt . "," . $cc; }; if (trim($_POST["bcc"]) != "") { $bcc = trim($_POST["bcc"]); $slrh_almt = $slrh_almt . "," . $bcc; }; $array_almt = split("," , $slrh_almt); for ($counter = 0; $counter < sizeof($array_almt); $counter++) { $array_almt[$counter] = cek_almt_email($array_almt[$counter]);
77
if ($array_almt[$counter] != "" ) { if (!cek_kar_email($array_almt[$counter])) { $trouble=1; ?> <p><small>Invalid email address. Please try again.</small></p> <? }; }; }; $header_email = "From: " . $_SESSION['Name'] . "\r\n"; if (isset($cc)) { $header_email .= "CC: " . $cc . " \r\n"; }; if (isset($bcc)) { $header_email .= "BCC: " . $bcc . " \r\n"; }; $bdn_email = ""; $bdn_email .= $_POST["body"]; $status = @mail($to, $_POST["subject"], $bdn_email, $header_email); if ($status && $trouble==0) { ?> <p><small>Your message has been sent successfully. You may now do something else.</small></p> <? } else { ?> <p><small>Sorry, but something has gone wrong and your message did not send. Please use the BACK button on your browser and try again.</small></p> <? }; @imap_close($mbox); ?> <p><small> <a href="inbox.php">Inbox</a> - <? echo $total_psn; ?> Message<br/> <a href="compose.php">Compose</a><br/>
78
<a href="logout.php">Logout</a> </small></p> </card> </wml> <? }; ?>
7. Skrip reply.php
<? session_start(); header('Content-type:text/vnd.wap.wml'); echo ('<?xml version="1.0" ?> '); echo ('<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">'); if (!isset($_SESSION['Name']) || !isset($_SESSION['Password'])) { header("Location: index.wml"); } else { $mbox = @imap_open("{localhost/pop3:110}", $_SESSION['Name'], $_SESSION['Password']); $error = imap_errors(); if (isset($_GET["pesanid"])) { $pesanid = $_GET["pesanid"]; } else { header("Location: index.wml"); }; $total_psn = @imap_num_msg($mbox); $nopesan = $_GET["pesanid"]; $header = @imap_header($mbox, $nopesan); $struktur_psn = @imap_fetchstructure($mbox, $nopesan); if (isset($header->reply_toaddress))
79
{ $tuj_psn = trim($header->reply_toaddress); } else { $tuj_psn = trim($header->fromaddress); }; if ($header->Subject == "") { $subjek_psn = "Re: No Subject"; } else { if (strtolower(substr(trim($header->Subject), 0, 3)) == "re:") { $subjek_psn = $header->Subject; } else { $subjek_psn = "Re: " . $header->Subject; }; }; ?> <wml> <template> <do type="prev" label="Back"> <prev/> </do> </template> <card id="reply" title="Reply"> <p align="left"><small>To:</small> <input type="text" name="to" value="<? echo htmlspecialchars($tuj_psn); ?>"/> </p> <p align="left"><small>Cc:</small> <input type="text" name="cc"/> </p> <p align="left"><small>Bcc:</small> <input type="text" name="bcc"/> </p>
80
<p align="left"><small>Subject:</small> <input type="text" name="subject" value="<? echo $subjek_psn; ?>"/> </p> <p align="left"><small>Message:</small> <input type="text" name="body" value=" <? echo "On " . substr($header->Date, 0, 20) . ", " . $tuj_psn . " wrote: \n"; echo htmlspecialchars(trim(@imap_fetchbody($mbox, $nopesan, 1))); ?> "/> </p> <p> <anchor title="Send"><go href="send.php" method="post"> <postfield name="to" value="$(to)"/> <postfield name="cc" value="$(cc)"/> <postfield name="bcc" value="$(bcc)"/> <postfield name="subject" value="$(subject)"/> <postfield name="body" value="$(body)"/> <postfield name="send" value="1"/></go><small>Send Reply</small> </anchor> <br/> <a href="message.php?id=<? echo $nopesan; ?>"><small>Cancel Reply</small></a> </p> </card> </wml> <? @imap_close($mbox); }; ?>
8. Skrip forward.php
<? session_start(); header('Content-type:text/vnd.wap.wml'); echo ('<?xml version="1.0" ?>');
81
echo ('<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">'); include "function.php"; if (!isset($_SESSION['Name']) || !isset($_SESSION['Password'])) { header("Location: index.wml"); } else { $mbox = @imap_open("{localhost/pop3:110}", $_SESSION['Name'], $_SESSION['Password']); $error = imap_errors(); if (isset($_GET["pesanid"])) { $pesanid = $_GET["pesanid"]; } else { header("Location: index.php"); }; $total_psn = @imap_num_msg($mbox); $nopesan = $_GET["pesanid"]; $header = @imap_header($mbox, $nopesan); $struktur_psn = @imap_fetchstructure($mbox, $nopesan); if ($header->Subject == "") { $subjek_psn = "Fwd: No Subject"; } else { if (strtolower(substr(trim($header->Subject), 0, 3)) == "fwd:") { $subjek_psn = $header->Subject; } else { $subjek_psn = "Fwd: " . $header->Subject; };
82
}; ?> <wml> <template> <do type="prev" label="Back"> <prev/> </do> </template> <card id="forward" title="Forward"> <p align="left"><small>To:</small> <input type="text" name="to" value="to"/> </p> <p align="left"><small>Cc:</small> <input type="text" name="cc"/> </p> <p align="left"><small>Bcc:</small> <input type="text" name="bcc"/> </p> <p align="left"><small>Subject:</small> <input type="text" name="subject" value="<? echo $subjek_psn; ?>"/> </p> <p align="left"><small>Message:</small> <input type="text" name="body" value=" <? echo "On " . substr($header->Date, 0, 20) . ", " . $tuj_psn . " wrote: \n"; echo htmlspecialchars(trim(@imap_fetchbody($mbox, $nopesan, 1))); ?> "/> </p> <p> <anchor title="Send"><go href="send.php" method="post"> <postfield name="to" value="$(to)"/> <postfield name="cc" value="$(cc)"/> <postfield name="bcc" value="$(bcc)"/> <postfield name="subject" value="$(subject)"/> <postfield name="body" value="$(body)"/> <postfield name="send" value="1"/></go><small>Send Forward</small> </anchor>
83
<br/> <a href="message.php?id=<? echo $nopesan; ?>"><small>Cancel Forward</small></a> </p> </card> </wml> <? @imap_close($mbox); }; ?>
9. Skrip delete.php
<? session_start(); include "function.php"; if (!isset($_SESSION['Name']) || !isset($_SESSION['Password'])) { header("Location: index.wml"); } else { $mbox = @imap_open("{localhost/pop3:110}", $_SESSION['Name'], $_SESSION['Password']); $error = @imap_errors(); $hapus_pesan = $_GET["hpspesan"]; @imap_delete($mbox, $hapus_pesan); @imap_close($mbox, CL_EXPUNGE); header("location:inbox.php"); }; ?>
10. Skrip logout.php
<? session_start(); unset ($_SESSION["SESSION"]); unset ($_SESSION["SESSION_Name"]); unset ($_SESSION["SESSION_Password"]);
84
Header('Content-type:text/vnd.wap.wml'); echo ('<?xml version="1.0" ?>'); echo ('<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">'); ?> <wml> <template> <do type="prev" label="Back"> <prev/> </do> </template> <card id="logout" title="Logout"> <p align="center"><small>You have successfully logout<br/> <a href="index.wml">Login</a><br/></small> </p> </card> </wml>