FAKULTAS SAINS DAN TEKNOLOGI
-
Upload
khangminh22 -
Category
Documents
-
view
1 -
download
0
Transcript of FAKULTAS SAINS DAN TEKNOLOGI
APLIKASI MENGGABUNGKAN EMAIL CLIENT DAN FILE
TRANFER PROTOCOL (FTP) CLIENT PADA DOMAIN WEB
Disusun Oleh :
N U R C A H Y A D I
204091002584
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGIUNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA2010
APLIKASI MENGGABUNGKAN EMAIL CLIENT DAN FILE
TRANFER PROTOCOL (FTP) CLIENT PADA DOMAIN WEB
Disusun Oleh :
N U R C A H Y A D I
204091002584
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGIUNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA2010
i
APLIKASI MEI\GGABUNGKAN EMAIL CLIENT DAI.{ FILETRANFER PROTOCOL (FTP) CLIENT PADA DOMAIN WEB
Skripsi
Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Komputer
Pada Fakultas Sains dan Teknologr
Universitas Islam Negeri Syarif Hidayatullah Jakarta
Oleh:
NURCAHYADI204091002558
Menyetujui,
Pembimbing I
'../7'-' ."/,'"
L-/'' .'/
Imam M. Shofi. MT
Pembimbing II
VivaNrP. 1973fl8102006042C01NIP. 1972020520080110 10
Mengetahui:
Ketua Program Studi Teknik Informatika
111
ufDurrachma cNIP. 1 97 1 0 s)kfr 0 60 41002
PENGESAHAN UJIAN
Skripsi berjudul "Aplikasi menggabungkan Email Client dan File Tratfbr
Protocol (FTP) Client Pada Dontain Web" yang ditulis oleir NURCAHYADI
dengan NIM 2040 .9100.2584 telah diuji dan dinyatakan Lulus dalarn Sidang
Munaqosyah Fakultas Sains dan Teknologi Islam Negeri Syarif Hidayatullah
Jakarta pada tanggal Selasa, 26 Agusnrs 2010.
Skripsi ini telah diterima sebagai salah satu syarat unfuk memperoleh gelar
Sarjana Strata Satu (S 1) Program Studi Teknik Informatika.
Jakarta, 26 Agustus 2010
Penguji II
6[cu'*'\ -; r
Andrerv Fiade. N'I.KomNIP. 1 9 82 08 112009 12t00 4
Pembimbing II
'Jr2';-..1/.,'-"
l* Imam M Shofi. MTNIP. 197202052008011010
Mengetahui,
Ketua Program Studi TeknikInformatika
IV
NrP. 19771 030200 112 1 003
Pembimbing I
iffif M.MSI3081020060420A1
NIP. 19680 tl7 2001121001ftufEftchman. M.Sc
NrP. 1 971 0 s222006041002
PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI DENGAN
APLIKASI HAFIZ EFTP CLIENT PENGGABUNGAN 2 APLIKASI EMAIL
CLIENT DAN FILE TRANFER PROTOCOL (FTP) CLIENT PADA DOMAIN
WEB BENAR – BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH
DIAJUKAN SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN
TINGGI ATAU LEMBAGA MANAPUN.
Jakarta, 2 Juni 2010
N u r c a h y a d i204091002584
iv
ABSTRAK
Nurcahyadi, Aplikasi Hafiz eFTP Client penggabungan 2 aplikasi Email Client dan File Tranfer Protocol (FTP) Client Pada Domain Web, dibimbing oleh Imam M Shofi, MT dan Viva Arifin, MMSI.
Hafiz eFTP Client adalah sebuah aplikasi untuk melakukan pengelolaan atau maintenance pada sebuah domain untuk mengatur pengiriman maupun penerimaan email dan transfer file menggunakan File Transfer Protocol (FTP) yang terkoneksi dengan server email dan FTP. Nama Hafiz adalah nama seorang anak kecil pemberi ide aplikasi ini dan eFTP kepanjangan dari email dan FTP. Seperti anak kecil yang sedang tumbuh untuk beranjak dewasa dan memberikan berbagai manfaat selama seterusnya aplikasi Hafiz eFTP Client berkembang. Aplikasi ini telah dipublikasikan dan dikembangkan melalui url http://hafizeftpclient.sourceforge.net/
Pengelolaan atau maintenance sebuah domain web atau website, Metode pengembangan sistem yang penulis gunakan adalah Rapid Application Development (RAD). Pada akhirnya, sistem ini dapat memberikan keluaran kepada penggunanya berupa sebuah aplikasi yang mampu melakukan maintenance untuk domain. Domain yang digunakan yaitu http://yadiacho.com. Untuk penamaan aplikasi ini diberikan nama Hafiz eFTP Client. Untuk ke depannya, aplikasi ini dapat dikembangkan lagi antara lain dengan melakukan integrasi dengan aplikasi-aplikasi pengurusan domain web lainnya.
Kata Kunci : Hafiz eFTP Client, Email Client, File Tranfer Protocol (FTP) , Domain Web, DNSJumlah Halaman : (CVI + 106 Halaman)Jumlah Daftar Pustaka : (1996 – 2010)
v
KATA PENGANTAR
Bismillahirrahmannirrahiim………
Segala puji dan syukur penulis panjatkan kepada Allah SWT, Yang Maha
Kuasa dan telah memberikan berkah dan anugerahNya kepada penulis sehingga
penulis mampu melaksanakan tugas untuk menyelesaikan skripsi ini dengan
sebaik-baiknya. Shalawat serta salam tak lupa juga penulis haturkan kepada
junjungan kita Nabi Besar Muhammad SAW.
Skripsi ini penulis buat sebagai syarat kelulusan dalam menempuh
pendidikan jenjang Strata-1 (S1) di Universitas Islam Negeri Syarif Hidayatullah
Jakarta. Selain itu juga penulis berharap apa yang penulis teliti, yang dijelaskan di
dalam skripsi ini, dapat dipergunakan dengan baik oleh semua pihak yang
membutuhkan, sehingga perkembangan ilmu pengetahuan dan teknologi
khususnya di Program Studi Teknik Informatika UIN Syarif Hidayatullah Jakarta
dapat lebih maju dan lulusannya dapat bekerja secara kooperatif dengan semua
elemen informatika dari seluruh dunia.
Pada kesempatan ini, penulis mengucapkan terima kasih kepada pihak-
pihak yang telah membantu penulis menyelesaikan skripsi ini :
1. Bapak Dr. Syopiansyah jaya Putra M.Sis selaku Dekan Fakultas Sains dan
Teknologi.
2. Bapak Yusuf Durrachman M.Sc, MIT selaku ketua Program Studi Teknik
vi
Informatika atas kesempatan untuk dapat melakukan penelitian di
Program Studi Teknik Informatika UIN Jakarta.
3. Bapak Imam M Shofi MT yang telah rela meluangkan waktunya untuk
mendukung dan membimbing penulis dalam menyelesaikan skripsi ini.
4. Ibu Viva Arifin MMSi beserta anak dan suami, pembimbing penulis yang
seperti orang tua penulis banyak ide dan kesimpulan yang telah penulis
dapatkan dari kalian.
5. Bapak dan Ibu penguji yang memberikan kritik dan saran pada skripsi ini.
6. Dosen – Dosen Fakultas Sains dan Teknologi yang telah mengajarkan
kepada penulis berbagai macam ilmu yang dapat penulis terapkan dalam
penulisan skripsi ini.
7. Kedua orang tua penulis, Seman bin Muhaimin dan Samiati, yang telah
memberikan dukungan moril, doa, semangat dan materiil sehingga
memperlancar proses penyusunan skripsi ini beribu doa penulis untuk
kalian.
8. Kakak penulis, Vivin Alviani S.Sos, terima kasih kakak atas perjuanganmu
dan segala apapun yang kakak berikan telah menjadikan diri penulis lebih
berarti.
9. Kakak penulis, Muhamad Yusuf yang selalu mengajarkan penulis sebuah
arti tanggung jawab. Semoga skripsi kakak cepat selesai juga.
10.Adik penulis, Anita S.sos, yang selalu memberikan semangat dan
vii
dorongan. Penulis akan selalu membantu dan menjagamu.
11.Ratih Purningsih, SKM pembimbing ketiga penulis, genggaman tangan
kamu telah membangunkan penulis saat terjatuh. Penulis akan selalu
melakukan yang terbaik sebagai janji penulis.
12.Ozryet, Mami Ina, Daqi, Kang Prabu, Uda, Koben, Jamban, Acung, Nyos
dan seluruh jajaran Staff Achosoft Corporation, tanpa kalian tak berartilah
hidup penulis dalam pembuatan skripsi ini.
13.ICT Citibank Indonesia yang telah mengizinkan penulis menyelesaikan
skripsi ini.
14.Teman-Teman seperjuangan FST Tahun Akademik 2003, Akademik 2004
dan Kelasku TI Centro berkat kalian kejenuhan semasa perkuliahan sirna
hingga penulis mengakhiri perkuliahan ini.
Penulis menyadari masih terdapat banyak kekurangan dalam penelitian ini,
baik penulisan maupun aplikasinya sendiri. Oleh karena itu penulis mengharapkan
saran dan kritik yang dapat membangun skripsi ini lebih baik lagi.
Jakarta, Juni 2010
Penulis
viii
DAFTAR ISI
Halaman Sampul …......................................................................................... i
Halaman Judul …............................................................................................. ii
Lembar Pengesahan Pembimbing …............................................................... iii
Surat Keterangan …......................................................................................... iv
Lembar Pengesahan Ujian …........................................................................... v
Lembar Pernyataan …...................................................................................... vi
Abstrak …........................................................................................................ vii
Kata Pengantar …............................................................................................. viii
Daftar Isi …...................................................................................................... ix
Daftar Gambar …............................................................................................ xiii
Daftar Tabel …................................................................................................ xv
BAB I PENDAHULUAN …........................................................................... 1
1.1 Latar Belakang Masalah …...................................................................... 1
1.2 Rumusan Masalah …................................................................................ 2
1.3 Batasan Masalah ...................................................................................... 2
1.4 Tujuan Penelitian …................................................................................. 3
1.5 Manfaat Penelitian …................................................................................ 4
1.6 Metodologi Penelitian ….......................................................................... 5
1.6.1 Metode Pengumpulan Data …....................................................... 5
1.6.2 Metode Pengembangan Sistem …................................................. 5
ix
1.7 Sistematika Penulisan …........................................................................... 6
BAB II LANDASAN TEORI …..................................................................... 8
2.1 Aplikasi …............................................................................................... 8
2.2 Email ...................................................................................................... 8
2.2.1 Mail Transfer Agent (MTA) ....................................................... 9
2.2.2 Mail Delivery Agent (MDA) ..................................................... 9
2.2.3 Mail User Agent (MUA) ............................................................ 10
2.3 File Transfer Protocol (FTP) …............................................................. 10
2.3.1 Pengertian FTP …...................................................................... 10
2.3.2 Jenis FTP …................................................................................ 11
2.3.3 Tujuan FTP …............................................................................. 11
2.3.4 Perintah – perintah Standar FTP …............................................ 11
2.3.5 Kode – kode Reply FTP …......................................................... 14
2.4 Domain Name System (DNS) …............................................................ 16
2.4.1 Manfaat DNS …........................................................................... 18
2.4.2 Jenis DNS Server …..................................................................... 18
2.5 Pembahasan Umum Java …..................................................................... 19
2.5.1 Pemrograman Jaringan Java ........................................................ 20
2.5.2 Java Swing …............................................................................... 22
2.5.3 JavaMail …................................................................................... 26
2.5.3.1 Kelas – Kelas Java Mail ….............................................. 27
2.5.4 Java FTP ….................................................................................. 28
x
2.6 UML …..................................................................................................... 30
2.6.1 Definisi …....................................................................................... 30
2.6.2 Pemodelan Diagram ..................................................................... 30
2.7 Studi Literatur …................................................................................... 36
BAB III METODOLOGI PENELITIAN …................................................... 40
3.1 Metode Pengumpulan Data …............................................................... 40
3.2 Metode Pengembangan Sistem …......................................................... 41
BAB IV HASIL DAN PEMBAHASAN ….................................................... 46
4.1. Fase Perencanaan Syarat – Syarat …..................................................... 46
4.1.1. Analisis Kebutuhan …............................................................... 46
4.1.2. Tujuan ….................................................................................... 50
4.1.3. Syarat – Syarat …...................................................................... 50
4.2. Fase Perancangan …............................................................................... 51
4.2.1. Perancangan Proses …................................................................ 51
4.2.1.1. Use Case Diagram …..................................................... 52
4.2.1.2. Class Diagram …........................................................... 56
4.2.1.3. Activity Diagram …........................................................ 60
4.2.1.4. Sequence Diagram …..................................................... 63
4.2.2. Perancangan Antar Muka …........................................................ 74
4.3. Fase Konstruksi …................................................................................... 83
4.4. Fase Pelaksanaan ….................................................................................. 85
4.4.1. Pemasangan dan Konfigurasi Domain Web …............................. 85
xi
4.4.2. Pengujian Aplikasi …................................................................... 88
4.4.3. Sharing Ilmu Pengetahuan di http://sourceforge.com .................. 100
4.4.4. Tanggapan User terhadap aplikasi Hafiz eFTP Client …............. 101
BAB V KESIMPULAN DAN SARAN …...................................................... 103
5.1. Kesimpulan …........................................................................................ 103
5.2. Saran ….................................................................................................. 104
DAFTAR PUSTAKA …................................................................................... 105
Lampiran I Tampilan Web Domain http://yadiacho.com …............................. I-1
Lampiran II Tampilan Survey Online ….......................................................... II-1
Lampiran III Source Code …........................................................................... III-1
xii
DAFTAR TABEL
Tabel 2.1. Perintah Standar FTP..................................................................... 12
Tabel 2.2. Notasi UML .................................................................................. 35
Tabel 4.1. Perbandingan Aplikasi Hafiz eFTP Client, FTPku dan ZIMBRA 47
Tabel 4.2. Angket Analisis Kebutuhan Email dan FTP Client ...................... 48
Tabel 4.3. Scenario Use Case Authentication System .................................... 53
Tabel 4.4. Scenario Use Case Sending Email ............................................... 53
Tabel 4.5. Scenario Use Case Receiving Email ............................................ 53
Tabel 4.6. Scenario Use Case Attaching File ............................................... 54
Tabel 4.7. Scenario Use Case Conecting Ftp Server .................................... 54
Tabel 4.8. Scenario Use Case Sending File to Ftp Server ............................ 55
Tabel 4.9. Scenario Use Case Downloading From Ftp Server ..................... 55
Tabel 4.10. Scenario Use Case Rename File or Directory ........................... 55
Tabel 4.11. Scenario Use Case Create Directory ......................................... 56
Tabel 4.12. Package com.acho.skripsi.email ................................................ 57
Tabel 4.13. Package com.acho.skripsi.email.client ...................................... 57
Tabel 4.14. Package com.acho.skripsi.email.themes .................................... 57
Tabel 4.15. Package com.acho.skripsi.email.utils ......................................... 57
Tabel 4.16. Package com.acho.skripsi.ftp ..................................................... 58
Tabel 4.17. Package com.acho.skripsi.io ...................................................... 58
xv
Tabel 4.18. Package com.acho.skripsi.swing ............................................... 58
Tabel 4.19. Package com.acho.skripsi.ui ...................................................... 59
Tabel 4.20. Package com.acho.skripsi.util .................................................... 59
Tabel 4.21. Daftar harga Hosting Domain .................................................... 85
Tabel 4.21. Fitur Hosting Domain ................................................................ 86
Tabel 4.22. Hasil Persentase Angket Tanggapan User ................................. 101
xvi
DAFTAR GAMBAR
Gambar 2.1. URL Request dari Client ........................................................... 17
Gambar 2.2. Sending Data ............................................................................ 21
Gambar 2.3. JavaMail …............................................................................... 26
Gambar 2.4. Kelas JavaMail ......................................................................... 27
Gambar 2.5. Contoh Class Diagram ............................................................. 31
Gambar 2.6. Contoh Package Class Diagram .............................................. 31
Gambar 3.1. Skema Pengembangan RAD ..................................................... 41
Gambar 3.2. Ilustrasi Metodologi Penelitian Aplikasi email
dan FTP Client pada Domain Web …........................................ 45
Gambar 4.1. Use Case Diagram Hafiz eFTP Client …................................. 52
Gambar 4.2. Package Hafiz eFTP Client ….................................................. 56
Gambar 4.3. Activity Diagram Authenticate …............................................. 60
Gambar 4.4. Activity Diagram Sending Email ….......................................... 61
Gambar 4.5. Activity Diagram Receiving Email …....................................... 62
Gambar 4.6. Activity Diagram Attachment Email …................................... 62
Gambar 4.7. Sequence Diagram Authenticate system Email ….................... 63
Gambar 4.8. Sequence Diagram sending Email …....................................... 65
Gambar 4.9. Sequence Diagram receiving Email …..................................... 69
Gambar 4.10. Sequence Diagram sending Email with Attachment ….......... 72
xiii
Gambar 4.11. Rancangan Loading Authentication ….................................. 74
Gambar 4.12 Rancangan Main Window ….................................................... 75
Gambar 4.13 Rancangan Composing email ….............................................. 77
Gambar 4.14 Rancangan FTP Client Window ….......................................... 79
Gambar 4.15 Rancangan Tab List …............................................................. 80
Gambar 4.16 Rancangan Tab Log …............................................................. 82
Gambar 4.17. Tampilan Awal Loading Authentication …............................. 90
Gambar 4.18. Tampilan Main Window Hafiz eFTP Client …........................ 90
Gambar 4.19. Tampilan Jika terjadi kegagalan koneksi …............................ 91
Gambar 4.20. Tampilan Reading Email ….................................................... 92
Gambar 4.21. Tampilan Sending Email ….................................................... 95
Gambar 4.22. Tampilan FTP Client Window …............................................ 96
Gambar 4.23. Tampilan menu Tab List …..................................................... 98
Gambar 4.24. Tampilan menu Tab List ......................................................... 99
xiv
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Perusahaan yang berkembang maupun organisasi perorangan
umumnya telah memiliki nama domain atau alamat website. Pada Domain
Name System (DNS) fitur – fitur yang ada pada domain tersebut diantaranya
adalah sebagai storage data atau penyimpan data – data, sarana publikasi
perusahaan, penghubung jaringan data untuk pertukaran informasi, sarana
surat elektronik atau email dan transfer file protocol (FTP).
Pengaturan domain web para pengguna yang tidak memiliki latar
belakang seorang programmer atau system administrator terkadang kesulitan
dalam menggunakan teknologi tersebut. Alangkah baiknya jika aplikasi yang
akan diwujudkan dapat mengurangi masalah tersebut. Masalah lain menurut
Timothy Fish (2008). “The problem that we all face is that when we start a
new project we are excited about it and have all kinds of bright ideas about
what we can put into our websites.” Ketika kita membuat sebuah project baru
atau domain web yang terpikir hanyalah pada isi dari web tersebut agar
domain web tersebut bagus. Sedangkan untuk pengelolaan data email dan
data yang akan dikirim ke domain web tersebut tidak menjadi hal penting.
1
2
Saat ini telah banyak aplikasi – aplikasi client side yang menawarkan
kecanggihan untuk mengatur domain web. Namun banyaknya konfigurasi
yang harus dilakukan membuat aplikasi tersebut tidak dapat digunakan oleh
pengguna akhir (end-user) domain web.
Pengaturan email dan transfer file merupakan fitur – fitur yang ada
pada sebuah domain web. Aplikasi yang ada saat ini untuk dua hal tersebut
umumnya terpisah. Seperti aplikasi email client yaitu: Mozilla Thunderbird,
Microsoft Outlook, Balsa, citadel. Untuk aplikasi FTP client seperti FileZilla,
CuteFTP.
Kesulitan dalam pengaturan konfigurasi ke server domain web pada
aplikasi – aplikasi ini sering terjadi. Dalam penelitian ini penulis
menggabungkan kedua fitur tersebut menjadi satu yang dapat memudahkan
perusahaan maupun pengguna untuk mengatur email dan transfer file ke
domain web.
Penggabungan dua aplikasi ini dimaksudkan untuk mempermudah
pengguna yang memiliki sebuah alamat domain web, karena aplikasi dapat
berjalan secara bersamaan. Pengguna tidak perlu repot lagi mengatur
konfigurasi yang ada pada sebuah domain web.
Pada tugas akhir ini penulis akan mewujudkan aplikasi sistem
pemanfaatan email dan file transfer protocol (FTP) pada domain name system
(DNS) untuk storage (penyimpanan) data. Adapun judul dari penelitian ini
adalah “Aplikasi Menggabungkan Email Client dan File Tranfer Protocol
(FTP) Client Pada Domain Web” .
3
1.2 Rumusan Masalah
Berdasarkan permasalahan maka dapat diambil suatu rumusan
masalah penelitian ini sebagai berikut:
1. Bagaimana membuat aplikasi email dan FTP Client, sehingga aplikasi
tersebut dapat dengan mudah dimengerti dan digunakan oleh pengguna
2. Bagaimana mewujudkan penggabungan 2 aplikasi berbeda Email
Client dan File Tranfer Protocol (FTP) Client Pada Domain Web.
1.3 Batasan Masalah
Berdasarkan latar belakang masalah yang telah diuraikan di atas maka
dalam penelitian ini di berikan beberapa batasan masalah agar memudahkan
dalam melakukan penelitian yang disesuaikan dengan keterbatasan waktu
penelitian. Adapun batasan masalah tersebut sebagai berikut:
1. Security network hanya pada otentikasi pengguna.
2. Batasan konfigurasi jaringan pada DNS, Mail Server dan Server
FTP.
3. Implementasi menggunakan bahasa pemrograman Java dengan
library Java Mail v1.4 dan Java JvFTP
1.4 Tujuan Penelitian
1. Terwujudnya sebuah aplikasi email dan FTP client pada domain web
yang dengan mudah dapat digunakan oleh pengguna.
2. Pengguna yang tidak memiliki latar belakang programmer atau system
administrator dapat menggunakan aplikasi ini.
3. Memahami kebutuhan aktor atau pengguna dari software yang akan
4
dibuat.
4. Menghasilkan sebuah software yang dapat digunakan pada sistem
operasi berbeda.
5. Meningkatkan ilmu pengetahuan dalam bidang teknologi dengan
menggunakan internet.
1.5 Manfaat Penelitian
1. Bagi Penulis
1. Pengguna dapat berperan aktiv untuk kemajuan teknologi opensource
untuk meningkatkan pendidikan untuk pribadi maupun seluruh dunia.
2. Mengamalkan ilmu pengetahuan yang penulis memiliki dan ilmu
tersebut menjadi dasar semakin berkembangnya teknologi di masa
depan nanti.
3. Menerapkan ilmu yang telah di pelajari semasa perkulihan dan agar
mengetahui seberapa jauh ilmu yang telah diserap selama duduk di
bangku perkuliahan.
4. Mampu menghadapi dunia kerja secara profesional.
2. Bagi Pengguna
1. Pengetahuan bertambah dalam bidang teknologi informasi khususnya
pada pengelolaan domain web.
2. Memudahkan perusahaan atau organisasi dalam mengelola data email
dan juga transfer file pada domain web.
3. Memudahkan perusahaan atau organisasi untuk mendapatkan
informasi seputar informasi yang diberikan oleh user interaction pada
5
domain web untuk pengelolaannya.
4. Menambah ilmu pengetahuan pengguna karena aplikasi yang
digunakan bersifat opensource sehingga pengguna dapat berperan
aktiv untuk pengembangan aplikasi ini.
1.6 Metodologi Penelitian
1.6.1 Metodologi Pengumpulan Data
Metodologi pengumpulan data yang dilakukan dalam penelitian
ini yaitu metode studi pustaka dengan pengumpulan data dan informasi
dengan mengambil dari sumber-sumber media cetak maupun
elektronik yang dapat dijadikan acuan pembahasan masalah. Buku –
buku digital yang bersifat universal (e-book) digunakan dalam
penelitian yang penulis lakukan.
Sumber lain pada metodologi pengumpulan data ini penulis
melakukan survey kebutuhan analisa email client dan FTP Client untuk
memperjelas data yang akan dianalisa dari para pengguna. Survey User
Acceptance Test (UAT) sebagai hasil pengujian aplikasi oleh para
pengguna.
1.6.2 Metodologi Pengembangan System
Dalam menyusun tugas akhir ini penulis menggunakan metodologi
pengembangan sistem dengan model Rapid Application Development
(RAD) untuk membuat sistem yang cepat tanpa harus mengorbankan
kualitas dengan tahapan – tahapan sebagai berikut:
1. Fase Perencanaan syarat – syarat
6
Menentukan tujuan dari aplikasi yang akan diwujudkan dengan
mengidentifikasikan permasalahan.
2. Fase Perancangan
Perancangan proses yang akan terjadi dalam sistem, perancangan
class yang akan di implementasikan dan perancangan output
interface.
3. Fase Konstruksi
Melakukan pengkodean terhadap rancangan – rancangan yang telah
didefinisikan.
4. Fase Pelaksanaan
Pada tahapan ini akan dilakukan konfigurasi pemasangan email dan
FTP pada domain web, pengujian pada aplikasi dan pengenalan
sistem.
1.7 Sistematika Penulisan
Secara garis besar, penulisan laporan ini dibagi menjadi 5 (lima) bab
dan 1 daftar pustaka. Adapun isi dari masing-masing bab tersebut adalah
sebagai berikut :
BAB I PENDAHULUAN
Bab ini terdiri dari latar belakang masalah, rumusan masalah, batasan
masalah, tujuan, manfaat, metodologi penelitian dan sistematika penulisan.
BAB II LANDASAN TEORI
Dalam bab ini berisi uraian tentang landasan teori yang diperlukan
dalam penulisan penelitian ini. Teori menjelaskan secara singkat esensi dasar
7
penelitian dan ditulis berdasarkan referensi yang penulis dapatkan dari buku
dan media informasi.
BAB III METODOLOGI PENELITIAN
Bab ini menguraikan secara rinci metodologi yang digunakan dalam
pembuatan aplikasi.
BAB IV HASIL DAN PEMBAHASAN
Bab ini membahas mengenai analisa, perancangan, implementasi dan
pengujian sistem.
BAB V PENUTUP
Bab ini berisi kesimpulan dari seluruh bab dan saran-saran untuk
pengembangan sistem lebih lanjut.
BAB II
LANDASAN TEORI
2.1 Aplikasi
Aplikasi adalah software atau perangkat lunak atau program yang
ditulis oleh manusia untuk melakukan tugas – tugas atau memecahkan
masalah tertentu.(Mulyanto, 2009;88).
Komputer merupakan perangkat keras yang berkecepatan tinggi.
Namun, secepat apapun komputer tersebut tidak dapat berbuat apa – apa
tanpa adanya perangkat lunak. Komputer hanya sebuah alat yang digunakan
untuk memproses informasi. Sedangkan yang memproses informasi tersebut
adalah perangkat lunak.
Perangkat lunak merupakan sekumpulan perintah atau instruksi yang
dienkapsulasi dalam bentuk program yang dapat dieksekusi oleh komputer
dengan tujuan menghubungkan antara pengguna dengan perangkat kerasnya.
Instruksi – instruksi ini ditulis oleh manusia untuk mengaktifkan fungsi dari
perangkat keras agar dapat bertindak sesuai yang dikehendaki oleh yang
memberikan instruksi tersebut.(Mulyanto, 2009;87).
2.2 Email
Beberapa Definisi Email :
1. Electronic mail (email) is the term given to an electronic
8
9
message, usually a form of simple text message, that a user types
at a computer system and is transmitted over some form of
computer network to another user, who can read it.
(Vicomsoft,2002;2)
2. Surat Elektronik atau E-mail merupakan singkatan dari
elektronic mail yaitu suatu metode untuk mengirimkan pesan
(surat), menyimpannya (storing), dan meneruskannya (forward)
ke alamat email lain melalui media elektronik (internet/intranet).
(Yuhefizar, 2008;79)
Dengan email pengguna bisa mengirim atau menerima email dari
dan ke pengguna internet ke seluruh dunia, dan setiap pesan yang dikirim
dan diterima akan selalu tersimpan pada mailbox.
Secara umum program atau aplikasi email diklasifikasikan menjadi
tiga klasifikasi yaitu Mail Transfer Agent (MTA), Mail Delivery Agent
(MDA), dan Mail User Agent (MUA) . Ketiga klasifikasi program email ini
masing-masing memiliki tugas dan peran penting dalam proses pergerakan
dan manajemen pesan-pesan email.
2.2.1 Mail Transfer Agent (MTA)
MTA merupakan suatu program yang bertanggung jawab
dalam hal pengiriman sebuah email ke alamat tujuan. Program ini
umumnya akan menjadi sebuah daemon, yaitu service yang berjalan
terus menerus selama komputer dihidupkan dan membuka koneksi
10
pada port 25 (port default SMTP) yang digunakan sebagai
penghubung antar MTA (Prasetyo, 2004:32).Contoh aplikasi MTA
yaitu Sendmail, Postfix, qmail, exim.
2.2.2 Mail Delivery Agent (MDA)
Fungsi MDA yang utama untuk mengirimkan email pada
tujuan yang ada dalam local system. Untuk itu MDA harus
mengetahui type dan lokasi data mailbox untuk masing-masing user.
Selain itu terdapat fungsi-fungsi tambahan pada MDA yaitu :
automatic mail filtering, automatic mail replying dan automatic
program initialization.
2.2.3 Mail User Agent (MUA)
Mail User Agent (MUA) merupakan sinonim dari aplikasi
email client. Sebuah MUA adalah sebuah program yang
memungkinkan user membaca dan membuat pesan-pesan email.
Pada Penelitian ini penulis menggunakan MUA untuk
menerapkan aplikasi Email Client yang penulis realisasikan.
2.3 File Transfer Protocol (FTP)
2.3.1 Pengertian FTP
File Transfer Protocol (FTP) adalah suatu protokol yang
berfungsi untuk tukar-menukar file dalam suatu network yang
menggunakan TCP koneksi bukan UDP. Dua hal yang penting dalam
FTP adalah FTP Server dan FTP Client. (Priyanto, 2010)
11
Protokol FTP mengizinkan transaksi file dua arah, dimana file
dapat dikirim ke atau dari sebuah server. Transaksi – transaksi ini
meliputi local filesystem (dalam sisi klien) dan remote filesystem
(dalam sisi server). Saat server menerima request FTP, server
membuka sebuah port (normalnya port 21) untuk koneksi yang
masuk dan mengauthentikasi klien – klien berdasarkan account.
2.3.2 Jenis FTP
Berikut ini FTP terbagi menjadi dua bagian yaitu:
1. FTP Server, suatu server yang menjalankan software yang
berfungsi untuk memberikan layanan tukar menukar file dimana
server tersebut selalu siap memberikan layanan FTP apabila
mendapat permintaan (request) dari FTP client.
2. FTP client, komputer yang melakukan request koneksi ke FTP
server untuk tujuan tukar menukar file. Setelah terhubung
dengan FTP server, maka client dapat men-download, meng-
upload, me-rename, men-delete, dan lain lain sesuai dengan
permission yang diberikan oleh FTP server.
2.3.3 Tujuan FTP
Tujuan dari FTP server adalah sebagai berikut :
1. Untuk tujuan sharing data
2. Untuk menyediakan indirect atau implicit remote computer
3. Untuk menyediakan tempat penyimpanan bagi user
12
4. Untuk menyediakan transfer data yang reliable dan efisien
2.3.4 Perintah – perintah Standar FTP
Perintah – perintah FTP umumnya sama pada setiap komputer,
meski begitu pada beberapa perintah tertentu memiliki beberapa
perbedaan. Di samping itu, banyak site FTP menawarkan kostumasi
perintah – perintah untuk kepentingan lingkungan sendiri.
Adapun perintah – perintah FTP standar yang didefinisikan
dalam RFC 959 diantaranya (Rafiudin, 2005;6) :
Tabel 2.1. Perintah Standar FTP
Command-line Description SyntaxABOR (ABORT) Membatalkan suatu
layanan dan semua file yang sedang ditransfer.
ABORT
ACCT (ACCOUNT) Menjelaskan dari informasi pengguna client FTP.
ACCT<space><username>
ALLO (ALLOCATE) Mengalokasikan berapa banyak data yang akan ditransfer dari FTP server ke FTP client.
ALLO <space> <decimal-integer>
ALLO <space> R <decimal-integer>
CDUP (CHANGE TO PARENT DIRECTORY) Kembali ke directory awal. CDUP
CWD (CHANGE TO PARENT DIRECTORY) Berpindah ke direktori
lain. CWD <space> <pathname>
DELE (DELETE) Menghapus file atau seluruh isi direktori.
DELE <space><pathname>
HELP (HELP) Menampilkan perintah yang didukung oleh FTP client.
HELP
HELP<space><string>
LIST (LIST) Menampilkan nama dan LIST
13
detil file yang dikirim dari FTP server.
LIST<space><pathname>
MDTM (MODIFICATION TIME) Perintah yang dapat
menentukan kapan file terakhir kali diubah.
MDTM <space><pathname>
MKD (MAKE DIRECTORY) Membuat direktori. MKD <space> <pathname>
MODE (TRANSFER MODE) Mengubah/menentukan
cara transfer file. MODE<space><mode-code>
NOOP (NOOP) Merupakan perintah untuk mengirimkan sinyal “OK” kepada server.
NOOP
PASS (PASSWORD) Mengirimkan password kepada FTP server, perintah ini harus didahulukan dengan “USER”
PASS<space><password>
PASV (PASSIVE) Mengirimkan permintaan transfer data ke port.
PASV
PORT (DATA PORT) Mencari data port alternatif.
PORT<space><host-port>
PWD (PRINT WORKING DIRECTORY) Menampilkan dimana
direktori saat ini. PWD
QUIT (LOGOUT) Keluar dari layanan FTP. QUIT REST (RESTART) Mengulang transfer suatu
file. REST <space> <marker>
RMD (REMOVE DIRECTORY) Menghapus directory. RMD <space> <pathname>
RNFR (RENAME FROM) Nama awal dari file/direktori yang akan diubah, perintah ini diikuti dengan perintah “RNTO”.
RNFR<space><pathname>
RNTO (RENAME TO) Perintah lanjutan dari “RNTO”, yang merupakan, nama baru untuk file/direktori.
RNTO <space> <pathname>
SIZE (SIZE OF Menentukan berapa SIZE<space><pathname>
14
FILE) banyak ukuran file yang akan ditransfer per-octetnya.
SMNT (STRUCTURE MOUT) Perintah yang
memungkinkan user untuk mount file sistem tanpa mengubah informasi user.
SMNT<space><pathname>
STAT (Status) Menampilkan hak kepemilikkan setiap file.
STAT<space><pathname>
STRU (FILE STRUCTURE) Menentukan tampilan
struktur file pada FTP client.F – File; R – Record Structure; P – Page Structure
STRU <space> <structure-coe>
SYST (SYSTEM) Menampilkan sistem operasi yang dipakai oleh server.
SYST
USER (USER NAME) Mengirim nama pengguna ke server.
USER<space><username>
2.3.5 Kode – kode Reply FTP
Pada server FTP menyediakan informasi – informasinya
berdasarkan kode – kode reply.
200 Perintah OK.
500 Sintax error, perintah diabaikan.
501 Sintax error dalam parameters atau argumen – argumen.
202 Perintah tidak diimplementasikan, berlebihan pada site ini.
502 Perintah tidak diimplementasikan.
503 Rangkaian perintah yang salah
15
504 Perintah tidak diimplementasikan untuk parameter dimaksud.
110 Reply restart.
211 Status System, atau reply bantuan.
212 Status direktori
213 Status File
214 Pesan Bantuan
215 Nama tipe sistem.
120 Layanan siap dalam n menit.
220 Layanan siap untuk pengguna baru.
221 Service menutup koneksi
421 Service tidak tersedia.
125 Koneksi data siap dibuka.
225 Koneksi data dibuka; tidak ada transfer berlangsung
425 Tidak dapat membuka koneksi data.
226 Menutup koneksi data.
426 Koneksi ditutup; transfer dibatalkan.
227 Masuk mode Passive.
230 User Login, diproses.
530 Tidak Login.
331 Username OK, dibutuhkan password
332 Dibutuhkan account untuk login
532 Dibutuhkan account untuk menyimpan file.
16
150 Status file OK, untuk membuka koneksi data.
250 Aksi file yang direquest OK, diselesaikan.
257 Nama path (“PATHNAME”) dibuat.
350 Aksi file yang direquest menunggu informasi lebih lanjut.
450 Aksi file yang di-request tidak dijalani (file tidak tersedia, atau
server FTP sedang sibuk)
550 Aksi file yang di-request tidak dijalani.
451 Aksi file yang di-request tidak dibatalkan. Terjadi error lokal.
551 Aksi file yang di-request tidak dibatalkan. Tipe halaman tidak
diketahui.
452 Aksi file yang di-request tidak dijalani. Space atau ruang
storage tidak mencukupi.
552 Aksi file yang di-request tidak dibatalkan. Melebihi batas.
553 Aksi file yang di-request tidak dijalani. Nama file tak diizinkan
2.4 Domain Name System (DNS)
Berikut ini beberapa pengertian DNS :
1. “The Domain Name System (DNS) is the hierarchical, distributed
database. It stores information for mapping Internet host names to IP
addresses and vice versa, mail routing information, and other data used
by Internet applications.” (Albitz and Liu,1998;10)
2. Domain Name System (DNS) adalah Distribute Database System yang
digunakan untuk pencarian nama komputer (Name Resolution) di
17
jaringan yang menggukan Transmision Control Protocol / Internet
Protocol (TCP/IP). DNS merupakan sebuah aplikasi service yang biasa
di gunakan di internet seperti web browser atau email yang
menerjemahkan sebuah domain name ke IP address. Misalnya,
yahoo.com di petakan ke sebuah IP 68.142.197.64 atau 217.12.3.11.
(Syafrizal, 2008; 213).
DNS dapat dianalogikan seperti pemakaian buku telpon dimana orang
yang kita kenal berdasarkan nama. Namun untuk menghubunginya kita
harus memutar nomor telepon di pesawat telpon dapat diganti dengan
namanya saja.
Gambar 2.1. URL Request dari Client
(Sumber: Syafrizal, 2008; 214)
18
Sama persis dengan host computer yang mengirim request berupa
nama komputer dan domain nama server ke DNS, lalu oleh DNS dipetakan
ke IP address. IP address ini yang digunakan untuk mengoneksikan
komputer dengan komputer lainnya. Di perlukan sebuah mekanisme atau
sistem perangkat lunak untuk konversi.
2.4.1 Manfaat DNS
Fungsi dari DNS adalah menterjemahkan nama komputer ke IP
address atau memetakan nama komputer menjadi IP address. Client
DNS disebut dengan resolvers dan DNS server disebut dengan nama
servers. Resolvers atau client mengirimkan permintaan ke nama
server berupa queries. Nama server akan memproses dengan cara
mengecek ke lokal database DNS. Bila yang dicari tidak terdapat di
lokal database maka nama server tersebut akan menghubungi nama
server lain atau akan mengirim message failure jika ternyata
permintaan dari client tidak ditemukan.
Proses tersebut disebut dengan Forward Lookup Query, yaitu
permintaan dari client di proses dengan cara memetakan nama
komputer atau host ke IP address.
2.4.2 Jenis DNS Server
DNS Server terdiri dari 3 jenis, yaitu:
1. Cache, jenis ini tidak mempunyai data nama-nama host dari
domain tertentu. Ia hanya mencari jawaban dari beberapa
19
DNS server dan menyimpan hasil di dalam cache-nya untuk
keperluan mendatang.
2. Primary (master), adalah DNS server yang memgang daftar
lengkap dari sebuah domain yang di kelolanya. Misalnya
server ns1.uinjkt.ac.id memegang otoritas penuh atas
domain uinjkt.ac.id.
3. Secondary (Slave), adalah backup dari primary server
apabila primary server crash atau untuk mempermudah
pendelegasiannya. Slave server juga memuat daftar lengkap
dari sebuah domain sama seperti primary, misalkan:
ns2.uinjkt.ac.id.
Sebuah contoh kasus, misalnya seorang pengguna yang berada
dalam jaringan atau network uinjkt dengan menggunakan browser
internet explorer atau browser lain mengakses situs
http://www.simperti.uinjkt.ac.id. Maka hal yang terjadi adalah
browser pertama sekali akan bertanya kepada resolver dikomputer
tersebut berapa IP address dari www.upt.uinjkt.ac.id. Resolvers akan
mencari jawaban dengan melihat isi dari cache atau mungkin situs
tersebut pernah di akses sebelumnya. Maka, informasi mengenai
alamat IP telah ada dalam cache dan resolver akan segera memberi
tahu jawabannya ke browser. Namun bila jawabannya belum ada
dalam cache, maka resolver akan mengontak DNS server lokal yang
20
menjadi default-nya (DNS server uinjkt) dan memberi jawabannya
ke browser untuk segera menampilkan informasi yang tersedia.
2.5 Pembahasan Umum Java
Bahasa Java merupakan karya Sun Microsystem Inc. Rilis Resmi level
beta dilakukan pada Nopember 1995. Dua bulan berikutnya Netscape
menjadi perusahaan pertama yang memperoleh lisensi bahasa Java dari Sun.
2.5.1 Pemrograman Jaringan Java
Java merupakan bahasa pemrograman pertama yang dirancang
dari bawah ke atas dengan pemahaman jaringan (networking) dalam
pemikirannya. Java ini awalnya dirancang untuk jaringan televisi
kabel lalu menjadi sebuah aplikasi kebutuhan Internet, tapi selalu
memiliki jaringan terdepan dalam pemikirannya. ( Harold, 2004;1 )
Salah satu dari dua aplikasi Java sebenarnya adalah sebuah
browser web. Perkembangan internet global terus tumbuh, Java
merupakan bahasa pemrograman yang unik cocok untuk membangun
jaringan generasi berikutnya dari aplikasi. Java menyediakan solusi
untuk beberapa masalah defendency platform dan keamanan yang
paling penting yang penting untuk aplikasi Internet, namun sulit
untuk alamat dalam bahasa lain.
Berikut ini manfaat – manfaat dari pemrograman jaringan java
antara lain :
1. Retrieve Data, Pada tingkat yang paling dasar, sebuah klien
21
jaringan mengambil data dari server. Ini dapat memformat
data untuk ditampilkan ke user, menyimpannya di database
lokal, gabungkan dengan sumber data lain, baik lokal dan
remote, menganalisis, atau semua hal di atas. Network client
yang ditulis dengan pemrograman java dapat terhubung
dengan protokol standar seperti HTTP, FTP, atau SMTP untuk
berkomunikasi dengan server yang ada yang ditulis dalam
berbagai bahasa. Namun, ada banyak klien untuk protokol-
protokol ini.
2. Send Data, Web browser yang dioptimalkan untuk
mengambil data tapi juga dapat mengirim data dalam jumlah
terbatas kembali ke server, sebagian besar melalui form.
Program java tidak memiliki keterbatasan seperti itu. Begitu
koneksi antara dua mesin didirikan, program Java dapat
mengirim data melalui sambungan semudah mereka dapat
menerima dari itu. Ini akan membuka banyak kemungkinan.
Gambar 2.2. Sending Data
(Sumber : www.oracle.com)
3. Interaksi peer-to-peer, contoh seperti aplikasi games, chatt
22
dan file sharing semua mengikuti klien / server model.
Namun, aplikasi Java juga dapat terhubung satu sama lain di
Internet, membuka banyak kemungkinan-kemungkinan baru
untuk kelompok aplikasi. Java applet juga dapat terhubung
satu sama lain, meskipun untuk alasan keamanan mereka
harus melakukannya melalui program proxy perantara
berjalan di server mereka di unduh.
4. Server, Aplikasi Java bisa terhubung ke koneksi jaringan dan
merespon ke server, sehingga mungkin untuk implementasi
server dengan Java. Sun Microsystem telah menulis W3C
web server dengan Java seperti yang dirancang untuk
berfungsi penuh sebagai server yang cepat dan ditulis dengan
bahasa C, seperti Apache HTTP Server dan Microsoft Internet
Information Server. Banyak jenis server lain telah ditulis
dengan Java, termasuk IRC server, NFS server, file server,
print server, email server, directory server, nama domain
server, FTP server, server TFTP, dan banyak lagi. Pada
kenyataannya, hampir semua standar TCP atau UDP server
yang Anda bisa memikirkan mungkin telah porting ke Java.
2.5.2 Java Swing
Swing adalah bagian dari Java Foundation Classes (JFC). The
JFC juga meliputi fitur-fitur lainnya penting untuk program GUI,
23
seperti kemampuan untuk menambahkan fungsionalitas grafik yang
kaya dan kemampuan untuk membuat sebuah program yang dapat
bekerja dalam berbagai bahasa dan oleh pengguna dengan perangkat
input yang berbeda.
Berikut ini merupakan keunggulan dan manfaat dari Java
Swing, antara lain :
1. Swing GUI Components, Swing toolkit ini meliputi berbagai
komponen array yang banyak yaitu: dari komponen dasar,
seperti tombol dan kotak cek, banyak komponen kompleks,
seperti tabel dan teks. Bahkan komponen sederhana, seperti
text field. Swing juga menawarkan fungsi canggih, seperti
input teks diformat atau field password behaviour. Ada file
browser dan dialog untuk memenuhi sebagian besar
kebutuhan, dan jika tidak, kustomisasi yang mungkin
dilakukan.
2. Java 2D API, Untuk membuat aplikasi Anda lebih menarik,
menyampaikan informasi visual atau menambahkan
kelebihan, gambar, atau animasi GUI Anda, Anda akan
menggunakan Java 2D API. Karena Swing dibangun
berdasarkan paket 2D, mudah untuk memanfaatkan 2D
dalam komponen Swing. Menambah gambar, drop bayangan,
compositing - sangat mudah dengan Java 2D.
24
3. Pluggable Look-and-Feel Support, Suatu program dapat
menentukan look and feel dari platform itu yang digunakan,
atau dapat menentukan untuk selalu menggunakan Java look
and feel, dan tanpa mengkompilasi ulang, itu akan hanya
bekerja. Atau, Anda dapat mengabaikan masalah ini dan
membiarkan manajer UI mengatasinya. look and feel ini
merupakan dukungan yang telah ada untuk Java Swing yang
memudahkan dalam memberikan tampilan Grafis pada
desktop.
4. Data Transfer, Transfer data melalui cut, copy, paste, and
drag and drop, adalah penting untuk hampir semua aplikasi.
Dukungan untuk transfer data dibangun ke Swing dan
bekerja di antara komponen Swing dalam sebuah aplikasi.
5. Internationalization, Fitur ini memungkinkan pengembang
untuk membangun aplikasi yang dapat berinteraksi dengan
pengguna di seluruh dunia dalam bahasa mereka sendiri dan
konvensi budaya. Aplikasi dapat dibuat dengan menerima
masukan dalam bahasa-bahasa yang menggunakan ribuan
karakter yang berbeda, seperti Jepang, Cina, atau Korea.
6. Accessibility API, Orang dengan menggunakan software
khusus penyandang cacat - bantu teknologi - yang menjadi
perantara pengalaman pengguna bagi mereka. Perangkat
25
lunak tersebut perlu mendapatkan banyak informasi tentang
aplikasi yang dijalankan untuk menyajikannya dalam media
alternatif: untuk pembaca layar untuk membaca layar dengan
pembicaraan atau menjadikan sintetik melalui sebuah layar
Braille, untuk layar kaca pembesar untuk melacak tanda
sisipan dan fokus keyboard, untuk keyboard pada layar untuk
menampilkan keyboard dinamis dari menu pilihan dan
toolbar item dan dialog kontrol, dan untuk sistem kontrol
suara untuk mengetahui apa yang user dapat mengontrol
dengan suaranya.
7. Swing's undo framework, mengijinkan pengembang untuk
memberikan dukungan untuk membatalkan dan mengulang.
Dukungan Undo dibangun pada teks untuk komponen Swing.
Untuk komponen lainnya, Swing mendukung jumlah tidak
terbatas tindakan untuk membatalkan dan mengulang, dan
dengan mudah disesuaikan dengan aplikasi. Sebagai contoh,
Anda dapat dengan mudah mengaktifkan membatalkan untuk
menambah dan menghapus elemen dari tabel.
8. Flexible Deployment Support, Jika program ingin dijalankan
di dalam jendela browser, Anda dapat membuat sebuah applet
dan menjalankannya menggunakan Java Plug-in, yang
mendukung berbagai browser, seperti Internet Explorer,
26
Firefox, dan Safari. Jika ingin membuat sebuah program
yang dapat diluncurkan dari sebuah browser, pengembang
dapat melakukannya dengan Java Web Start. Tentu saja,
pengembang juga dapat menjalankan aplikasi di luar browser
sebagai standar aplikasi desktop.
2.5.3 JavaMail
Berikut ini pengertian umum dari JavaMail :
1. “The JavaMail API is an optional package (standard
extension) for reading, composing, and sending electronic
messages.” (Zukowski,1996;3)
2. “JavaMail provides a common, uniform API for managing
electronic mail. It allows service-providers to provide a
standard interface to their standards-based or proprietary
messaging systems using the Java programming language.
Using this API, applications access message stores, and
compose and send messages.” (Sun Microsystem,1998;2)
JavaMail merupakan package atau library standar yang
diterbitkan oleh Sun Microsystem untuk membaca,
mengkomposisikan dan mengirimkan surat elektronik atau email.
Gambar 2.3. JavaMail
27
2.5.3.1 Kelas – Kelas Java Mail
Dari Gambar 2.4. dapat dijelaskan bahwa JavaMail API
yang terdiri dari beberapa rangkaian class abstrak yang
merupakan model dari bagian email sistem.
Gambar 2.4. Kelas JavaMail
(Sumber: Sun Microsystem,1998;2)
Kelas – kelas yang dimaksud dalam penggunaan Library
JavaMail adalah sebagai berikut :
1. Message, Kelas abstrak yang merepresentasikan sebuah
pesan surat elektronik. JavaMail mengimplementasikan
RFC822 dan MIME pesan internet standar.
MimeMessages class extends Messages untuk
mempresentasikan sebuah MIME-Style pesan email.
2. Store, Kelas abstrak yang merepresentasikan pesan
database dikelola oleh mail server dan dikelompokkan
oleh pemilik. Sebuah store menggunakan protokol akses
tertentu.
3. Folder, Kelas abstrak yang menyediakan cara untuk
28
mengatur pesan hierarkis. Folder dapat berisi pesan dan
folder lain. Sebuah mail server menyediakan masing-
masing pengguna dengan folder default, dan pengguna
biasanya dapat membuat dan mengisi subfolder.
4. Transport, Kelas abstrak yang merepresentasikan
protokol transport tertentu. Transport objek menggunakan
protokol transport tertentu untuk mengirim pesan.
2.5.4 Java FTP
Pengetahuan dasar dalam menggunakan Java FTP yaitu
mengenali penggunaannya dengan dasar – dasar sebagai berikut :
1. Parsing command-line parameters
Method statik untuk parse command-line parameters
adalah sebagai berikut : % java -jar jftp.jar ftp://ftp.server.com/pub -user eternity
public static void main(String args[]) { FtpConnect cn = FtpConnect.newConnect(args); ...
2. Connecting and logging into a server
Melakukan koneksi ke web domain server dengan perintah
sebagai berikut :
Ftp cl = new Ftp();try
{ /* connect & login to host */cl.connect("ftp.server.com",Ftp.PORT);cl.login("my-user-name","my-sec-pass");
…}
catch(IOExceptione)
29
{ System.out.println(e);
}
3. Listing current directory
Untuk mengetahui daftar dari berkas dan folder dengan script
sebagai berikut :
/* list & print current directory */CoFile fls[] = dir.listCoFiles(); if(fls!=null) for(int n=0;n;n++) System.out.println(fls[n].getName() /* mark dirs with slash '/' char */ +(fls[n].isDirectory()?"/":"")); …...
}catch (IOException e) { System.out.println(e); }
4. Disconnecting from server
Pengakhiran koneksi antara klien dan web domain dilakukan
perintah sebagai berikut :
finally { /* disconnect from server * this must be always run */ cl.disconnect(); }
Dari penjelasan diatas merupakan bagian yang akan digunakan
dalam pembuatan aplikasi pada penelitian ini. Penulis juga
melakukan beberapa modifikasi yang akan dibahas pada bab
Pembahasan yang akan diuraikan dengan jelas. Java FTP sangat
cocok digunakan karna didalamnya telah tersedia fungsi – fungsi
yang dibutuhkan.
30
2.6 Socket Programming
2.6.1 Dasar Teori
Socket merupakan fasilitas Inter Proses Communication (IPC)
untuk aplikasi jaringan. Model komunikasi dengan soket
digambarkan pada gambar 2.5
Gambar 2.5. Model IPC dengan soket
Agar suatu soket dapat berkomunikasi dengan soket
lainnyanya, maka soket butuh diberi suatu alamat unik sebagai
identifikasi. Alamat soket terdiri atas Alamat IP dan Nomer Port.
Contoh alamat socket adalah 192.168.29.30: 3000, dimana nomor
3000 adalah nomor port. Alamat IP dapat menggunakan alamat
Jaringan Lokal (LAN) maupun alamat internet. Jadi socket dapat
digunakan untuk IPC pada LAN maupun Internet.
Nomor port dibutuhkan karena proses yang berjalan pada suatu
komputer umumnya lebih dari satu. Sehingga dibutuhkan tambahan
informasi sebagai identifikasi proses yang hendak dihubungi.
31
2.6.2 Macam-macam Komunikasi Socket
Secara umum ada dua macam komunikasi dengan
menggunakan soket, yaitu komunikasi stream dan komunikasi
datagram. Komunikasi stream sering juga disebut dengan komunikasi
yang berorientasi koneksi (Connection oriented communication).
Sedangkan Komunikasi datagram disebut juga dengan komunikasi tak
berkoneksi (connectionless communication). Protokol standar untuk
komunikasi stream dikenal dengan istilah Transmission Control
Protocol (TCP), sedangkan standar protokol komunikasi datagram
dikenal dengan User Datagram Protocol (UDP).
UDP memiliki batasan ukuran datagram (paket data) yang
dikirimkan sebesar 64 kb. Sedangkan TCP tidak memiliki batasan ini
karena data-data dikirimkan sebagai aliran data (stream).
Sesungguhnya TCP akan memecah data yang besar menjadi sejumlah
paket data berukuran kecil dan diberi nomor urut. Pada sisi soket
penerima, paket-paket data ini akan disimpan, diurutkan kembali, dan
akhirnya digabungkan kembali menjadi data besar.
UDP merupakan protocol yang unreliable (tidak handal).
Ketika paket data dikirimkan, UDP tidak mengecek kembali apakah
data yang dikirim sampai tujuan.TCP adalah protocol yang reliable
yang senantiasa menunggu konfirmasi dari pihak socket penerima,
dan kalau perlu paket data yang hilang akan dikirimkan kembali.
32
Konsekuensinya adalah TCP menimbulkan overhead lalulintas
jaringan lebih tinggi dibanding UDP.
2.6.3 Pemrograman Socket di Java
Java menyediakan obyek Socket dan Server Socket untuk
komunikasi soket TCP. ServerSocket digunakan pada sisi aplikasi
server, sedangkan Socket digunakan baik pada sisi aplikasi server
maupun client. Berikut adalah langkah-langkah membuat komunikasi
socket di java:
1. Membuka Socket
Pada client, hal ini dilakukan sebagai berikut:
Socket myKlien = null; try { myKlien = new Socket("host", NomorPort); } catch (UnknownHostException uhe) { uhe.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
Pada server:
public static final int NomorPort = 1234; ServerSocket Layanan = null; try { Layanan = new ServerSocket(NomorPort); } catch (IOException ioe) { ioe.printStackTrace(); }
Selain itu, pada server juga harus dibuat sebuah objek socket dari
kelas ServerSocket untuk mendengar dan menerima koneksi dari
klien, sebagai berikut:
Socket layananSocket = null; try {
33
layananSocket = Layanan.accept(); } catch (IOException iex) { iex.printStackTrace(); }
2. Membuat data input stream
Untuk membuat input stream pada client, dapat digunakan kelas
BufferedReader untuk menerima respon dari server.
BufferedReader is = null; try { is = new BufferedReader(new InputStreamReader(myKlien.getInputStream())); } catch (IOException ioe) { ioe.printStackTrace(); }
Pada server juga dapat digunakan BufferedReader untuk menerima
input dari client.
BufferedReader is = null; try { is = new BufferedReader(new InputStreamReader(Layanan.getInputStream())); } catch (IOException ioe) { ioe.printStackTrace(); }
3. Membuat data output stream
Pada client, dapat digunakan kelas DataOutputStream untuk
mengirimkan data ke socket server.
DataOutputStream os = null; try { os = new DataOutputStream(myKlien.getOutputStream()); } catch (IOException ix) { ix.printStackTrace(); }
Pada server:
DataOutputStream os = null; try { os = new
34
DataOutputStream(Layanan.getOutputStream()); } catch (IOException ie) { ie.printStackTrace(); }
4. Saling berkirim dan menerima pesan
Untuk mengirim pesan menggunakan DataOutput Stream yang telah
dibentuk dan disambung pada buffer data output soket.
os.writeBytes(dataOutput);
Untuk menerima pesan menggunakan BufferedReader yang telah
dibentuk dan disambung dengan buffer data input soket.
dataInput=Is.readLine();
5. Menutup socket
Pada client :
try {
os.close(); is.close(); myKlien.close(); } catch (IOException io) { io.printStackTrace(); }
Pada Server :
try { os.close(); is.close(); layananSocket.close(); } catch (IOException ic) { ic.printStackTrace(); }
2.7 UML
2.7.1 Definisi
1. “The UML defines a diagrammatic notation for describing the
artefacts of an OOAD. Through the UML we can visualize, specify,
35
construct and document our software application. As our software
systems become ever larger and ever more complex we need to
manage that complexity and, in a sense, simplify it so we have a
better understanding of it.” (Barclay, and Savage, 2004:3).
2. UML mendefinisikan notasi dan syntax/semantik. Notasi UML
merupakan sekumpulan bentuk khusus untuk menggambarkan
berbagai diagram piranti lunak. Setiap bentuk memiliki makna
tertentu, dan UML syntax mendefinisikan bagaimana bentuk-
bentuk tersebut dapat dikombinasikan. (Dharwiyanti, 2003:2)
2.7.2 Pemodelan Diagram
Diagram-diagram yang terdapat di dalam pemodelan UML
adalah sebagai berikut :
1. Use Case Diagram
Use case diagram menggambarkan fungsionalitas
yang diharapkan dari sebuah sistem. Yang ditekankan adalah
“apa” yang diperbuat sistem, dan bukan “bagaimana”.
Sebuah use case merepresentasikan sebuah interaksi antara
aktor dengan sistem.
2. Class Diagram
Class diagram adalah sebuah spesifikasi yang jika
diinstansiasi akan menghasilkan sebuah objek dan merupakan
inti dari pengembangan dan desain berorientasi objek. Class
36
diagram menggambarkan keadaan (atribut/properti) suatu
sistem, sekaligus menawarkan layanan untuk memanipulasi
keadaan tersebut (metoda/fungsi).
Class diagram menggambarkan struktur dan deskripsi
class, package dan objek beserta hubungan satu sama lain
seperti containment, pewarisan, asosiasi, dan lain-lain.
Class diagram memiliki tiga area pokok :
1. Nama ( stereotype)
2. Atribut
3. Method
Gambar 2.5. Contoh Class Diagram
Gambar 2.6. Contoh Package Class Diagram
3. Statechart Diagram
Statechart diagram menggambarkan transisi dan
perubahan keadaan (dari satu state ke state lainnya) suatu
objek pada sistem sebagai akibat dari stimuli yang diterima.
37
Pada umumnya statechart diagram menggambarkan class
tertentu (satu class dapat memiliki lebih dari satu statechart
diagram).
4. Activity Diagram
Activity diagram menggambarkan berbagai alir
aktivitas dalam sistem yang sedang dirancang, bagaimana
masing-masing alir berawal, decision yang mungkin terjadi,
dan bagaimana mereka berakhir. Activity diagram juga dapat
menggambarkan proses paralel yang mungkin terjadi pada
beberapa eksekusi.
Activity diagram merupakan state diagram khusus, di
mana sebagian besar state adalah action dan sebagian besar
transisi di-trigger oleh selesainya state sebelumnya (internal
processing). Oleh karena itu activity diagram tidak
menggambarkan behaviour internal sebuah sistem (dan
interaksi antar subsistem) secara eksak, tetapi lebih
menggambarkan proses – proses dan jalur – jalur aktivitas
dari level atas secara umum.
5. Sequence Diagram
Sequence diagram menggambarkan interaksi antar
objek di dalam dan di sekitar sistem (termasuk pengguna,
display, dan sebagainya) berupa message yang digambarkan
38
terhadap waktu. Sequence diagram terdiri atar dimensi
vertikal (waktu) dan dimensi horizontal (objek – objek yang
terkait).
Sequence diagram biasa digunakan untuk
menggambarkan skenario atau rangkaian langkah-langkah
yang dilakukan sebagai respons dari sebuah event untuk
menghasilkan output tertentu. Diawali dari apa yang menjadi
trigger aktivitas tersebut, proses dan perubahan apa saja yang
terjadi secara internal dan output apa yang dihasilkan.
6. Collaboration Diagram
Collaboration diagram juga menggambarkan
interaksi antar objek seperti sequence diagram, tetapi lebih
menekankan pada peran masing-masing objek dan bukan
pada waktu penyampaian message.
Setiap message memiliki sequence number, di mana
message dari level tertinggi memiliki nomor 1. Messages dari
level yang sama memiliki prefiks yang sama.
7. Component Diagram
Component diagram menggambarkan struktur dan
hubungan antar komponen piranti lunak, termasuk
ketergantungan (dependency) di antaranya. Komponen
39
piranti lunak adalah modul berisi code, baik berisi source
code maupun binary code, baik library maupun executable,
baik yang muncul pada compile time, link time, maupun run
time.
8. Deployment Diagram
Deployment/physical diagram menggambarkan detail
bagaimana komponen di-deploy dalam infrastruktur sistem, di
mana komponen akan terletak (pada mesin, server atau piranti
keras apa saja), bagaimana kemampuan jaringan pada lokasi
tersebut, spesifikasi server, dan hal-hal lain yang bersifat
fisik. Sebuah node adalah server, workstation, atau piranti
keras lain yang digunakan untuk men-deploy komponen
dalam lingkungan sebenarnya. Hubungan antar node
(misalnya TCP/IP) dan requirement dapat juga didefinisikan
dalam diagram ini. (Dharwiyanti,2003:4)
Untuk pembuatan aplikasi email dan FTP Client ini, diagram
yang digunakan yaitu Use Case Diagram, Class Diagram, Activity
diagram, State Diagram dan Sequence Diagram.
Tabel 2.2. Notasi UML
No Notasi Keterangan1 Class Diagram, digunakan untuk
mengambarkan kelas-kelas program. Terdiri atas nama kelas, atribute yaitu properties yang dimiliki oleh kelas, dan operation yaitu aktifitas yang
40
dapat dilakukan oleh kelas tersebut2 Relationship merupakan hubungan
antar class. Dapat berupa one to one, one to many, maupun many to one
3 Aktor merupakan pelaku-pelaku yang terlibat di dalam sistem.
4 Use case merupakan penjelasan kegiatan-kegiatan yang ada di dalam
sistem5 Initial node digunakan sebagai notasi
awal dari proses yang dijalankan.6 Action merupakan notasi yang
menggambarkan aksi yang terjadi di dalam suatu proses
7 Activity Final Node merupakan notasi yang melambangkan akhir dari
sebuah proses8 Activity merupakan aktifitas yang ada
di dalam sistem. Biasa digunakan pada proses yang melibatkan proses
lainnya.
9 Activity dengan parameter biasa digunakan pada proses yang
melibatkan proses lainnya serta mengambil parameter dari proses
tersebut.
10 Lifeline merupakan state dari sebuah proses yang ada di dalam sistem.
Nantinya, setiap bagian dari proses akan berhenti pada lifeline yang
sesuai.
(Sumber: Dharwiyanti, 2003:45)
2.8 Studi Literatur
Di bawah ini perbandingan sebelumnya dari penelitian yang telah
dilakukan.
1. Penelitian dengan Aplikasi bernama “FTPku”.
41
Judul :
Pengembangan Aplikasi File Transfer Protocol (FTP) Client berbasis
Web dengan Teknologi AJAX.
Penulis :
Wicaksono Adi Putro
NIM :
103091029620
Jurusan :
Teknik Informatika
Asal Universitas :
UIN Syarif Hidayatullah Jakarta
Latar Belakang :
Web Administrator membutuhkan sebuah tools atau suatu aplikasi
FTP Client untuk mengunggah berkas – berkas ke alamat hosting.
Kekurangan Penelitian Ini :
Aplikasi ini mengandalkan web browser internet dan bahasa
pemrograman PHP.
Perbandingan :
Hafiz e-FTP menggunakan teknologi Java GUI yang lebih stabil dengan
standalone system dengan tampilan menu window yang mudah
dimengerti pengguna.
2. Penelitian dengan Aplikasi bernama “ZIMBRA”
Judul :
Pengembangan Sistem Otentikasi User dengan Active Directory
42
Windows Server 2003 Studi Kasus Email Server Zimbra (RHEL 4)
Penulis :
Ikhwan ‘Alim
NIM :
103091029534
Jurusan :
Teknik Informatika
Asal Universitas :
UIN Syarif Hidayatullah Jakarta
Latar belakang :
Karena keamanan jaringan komputer adalah bagian yang tidak
terpisahkan dari keamanan sistem informasi sebuah organisasi secara
keseluruhan.
Kekurangan Penelitian Ini :
Hal tersebut membuat pemakai/user kurang nyaman, karena harus
menghafal banyak account dan password. Aplikasi ZIMBRA ini
digunakan hanya pada jaringan intranet karna aplikasi di khususkan
untuk para pegawai untuk melakukan komunikasi.
Perbandingan :
Hafiz e-FTP aplikasi yang terhubung dengan web server secara online.
Dimanapun pengguna berada dengan akses internet. Maka mengguna
bisa terkoneksi dengan web server.
43
3. Penelitian dengan Aplikasi Email Client Terenkripsi
Judul :
Implementasi algoritma kriptografi kunci – publik ElGamal untuk
keamanan pengiriman Email
Penulis :
M. Syaiful Rizal
NIM :
7408040527
Jurusan :
Teknik Informatika
Asal Universitas :
Institut Teknologi Semarang (ITS)
Latar belakang :
Kehidupan kita saat ini dilingkupi oleh kriptografi. Mulai dari
transaksi di mesin ATM, percakapan melalui telpon genggam,
mengakses Internet, sampai mengaktifkan peluru kendalipun
menggunakan kriptografi. Begitu pentingnya kriptografi untuk
keamanan Informasi ( Information Security ), sehingga jika berbicara
mengenai masalah keamanan yang berkaitan dengan penggunaan
komputer, maka tidak akan bisa dipisahkan dari dengan kriptografi.
Kekurangan Penelitian Ini :
Email yang terbaca atau isi dari konten merupakan character ter-enkripsi
44
yang artinya tidak dapat dibaca oleh system apapun selain sytem ini.
Yang memungkinkan adanya virus yang tidak terdeteksi. Virus tersebut
akan aktiv setelah terjadi dekripsi.
Perbandingan :
Hafiz e-FTP lebih mengutamakan kemudahan dalam penggunaan
system. Hafiz e-FTP dengan fitur kemudahan untuk melakukan
attachment file dan pembacaan data text character yang memungkinkan
script - scipt intruder tidak tereksekusi di system. File attachment dapat
dengan mudah dikenali oleh system antivirus lain.
BAB III
METODOLOGI PENELITIAN
Pada bab ini akan diuraikan metode penelitian yang penulis gunakan
dalam Aplikasi Email dan FTP Client pada Domain Web, diantaranya adalah :
3.1. Metode Pengumpulan Data
Penelitian ini merupakan penelitian deskriptif dengan menggunakan
survey atau angket kuesioner. Penelitian deskriptif dapat diartikan sebagai
proses pemecahan masalah yang diselidiki dengan melukiskan keadaan
subyek dan obyek penelitian pada saat sekarang berdasarkan fakta yang
tampak atau bagaimana adanya. Pelaksanaan metode penelitian deskriptif
tidak terbatas sampai pada pengumpulan data dan penyusunan data, tetapi
meliputi analisis dan interpretasi dengan data tersebut. Selain itu semua data
yang dikumpulkan memungkinkan menjadi kunci terhadap apa yang diteliti.
Pada tahapan pengumpulan data dengan cara studi pustaka, penulis
mencari referensi-referensi yang relevan dengan objek yang akan diteliti.
Dalam melakukan penelitian ini diperlukan data – data informasi yang
relatif lengkap sebagai bahan yang dapat mendukung kebenaran materi
uraian pembahasan. Oleh karena itu untuk menyusun skripsi ini, dalam
pesiapannya terlebih dahulu penulis melakukan pencarian dan pengumpulan
data – data atau bahan materi yang diperlukan.
40
41
3.2. Metode Pengembangan Sistem
Dalam penelitian metode pengembangan sistem yang digunakan
adalah model pendekatan Rapid Application Development (RAD). Penulis
menggunakan model RAD karena melihat dari aplikasi yang dikembangkan
adalah aplikasi yang sederhana.
Keunggulan pengembangan sistem yang penulis lakukan pada
penelitian ini. Penulis mencoba mengembangkan aplikasi ini dengan
mendaftarkan ke situs para pengembang aplikasi atau software developer
dengan lisensi aplikasi open source pada situs http://sourceforge.com
penulis akan menjelaskan hal ini pada sub bab 4.4.3. pada bagian fase
pelaksanaan.
Adapun skema model pengembangan sistem RAD pada Gambar 3.1
Gambar 3.1. Skema Pengembangan RAD
Menentukan Tujuan dan Syarat – Syarat informasi
Fase Perencanaan Syarat - Syarat
Bekerja dengan pengguna untuk sistem rancangan
MembangunSistem
Memperkenalkan dan Mengembangkan Sistem
Umpan BalikPenggunaFase Perancangan Fase Konstruksi
Menggunakan Masukan dari pengguna
Fase Pelaksanaan
42
Model pengembangan RAD memiliki empat fase yaitu fase
perencanaan syarat – syarat, fase perancangan, fase konstruksi dan fase
pelaksanaan. Berikut adalah penjelasan masing – masing fase dalam
penelitian ini.
1. Fase Perencanaan Syarat – Syarat
Pada tahap ini dilakukan pengidentifikasian tujuan aplikasi atau
sistem serta untuk mengidentifikasi syarat – syarat informasi yang
ditimbulkan dari tujuan – tujuan tersebut. Pada tahap ini penulis
melakukan analisis kebutuhan dengan masukan dari user menggunakan
kuesioner dan juga melakukan perbandingan dengan penelitian
sebelumnya. Hasil analisis tersebut digunakan untuk mengidentifikasi
tujuan dan syarat – syarat untuk mencapai tujuan tersebut yaitu
mewujudkan aplikasi email dan FTP Client pada domain web. Apliakasi
ini diberi nama Hafiz eFTP Client. Untuk Fase ini penulis akan
membahasnya pada sub bab 4.1
2. Fase Perancangan
Fase ini akan dibahas pada sub bab 4.2. Pada penelitian ini penulis
menggunakan dua perancangan untuk membangun aplikasi Hafiz eFTP
Client ini, antara lain :
a. Perancangan Proses
Pada tahap perancangan ini akan dilakukan perancangan dan
evaluasi dan memperbaiki sistem sesuai dengan kebutuhan. Agar
43
sistem yang sedang dibuat dapat dimanfaatkan secara optimal.
Perancangan proses yang terjadi didalam aplikasi ini dibuat dengan
menggunakan diagram UML. Diagram UML yang dibuat untuk
menggambarkan perancangan proses dan juga algoritma –
algoritma yang akan terjadi adalah Use Case Diagram, Class
Diagram, Sequence diagram dan State Diagram. Dibahas pada sub
bab 4.2.1.
b. Perancangan Antar Muka Pemakai (User Interface)
Antar muka pemakai memberikan fasilitas komunikasi antar
pemakai dan sistem, memberikan berbagai fasilitas informasi dan
berbagai keterangan yang bertujuan untuk membantu mengarahkan
alur penelusuran masalah sampai ditemukan solusi.
3. Fase Konstruksi
Pada tahapan ini dilakukan pembuatan program terhadap
rancangan – rancangan yang telah didefinisikan. Pembuatan program
yang dilakukan menggunakan bahasa pemrograman Java dengan
Library Java Mail v1.4 , Library Activation framework dan JvFTP.
Adapun aplikasi Tools yang digunakan menggunakan Eclipse IDE 3.4.
Untuk men- generate dokumentasi JavaDoc dan mengunggah source
code ke situs http://kenai.com menggunakan tools Netbeans IDE 6.8.
Fase konstruksi akan dibahas pada sub bab 4.3.
Pada pewujudan aplikasi ini source code yang digunakan tidak
44
murni sepenuhnya ditulis oleh penulis. Pewujudan aplikasi ini
merupakan inisiatif penulis untuk menyatukan script source code yang
telah ada menjadi sebuah aplikasi yang sempurna dan bermanfaat untuk
digunakan. Beserta dengan beberapa algoritma yang penulis terangkan
pada bab 4.2 (fase perencanaan) untuk mengetahui logika – logika yang
telah ada untuk disatukan menjadi sebuah aplikasi Hafiz eFTP Client.
4. Fase Pelaksanaan
Pada tahapan ini dilakukan pemasangan dan konfigurasi aplikasi
Hafiz eFTP Client pada domain web. Domain web yang digunakan
berada di server internet dan aplikasi berjalan secara online. Untuk
pengujian aplikasi ini penulis menggunakan pengujian black-box yaitu
suatu pengujian yang berfokus pada persyaratan fungsional perangkat
lunak (Pressman, 2002:551). Black-box digunakan untuk menguji tiap
fungsi dari aplikasi untuk menghasilkan output yang diinginkan.
Selain itu pada tahapan ini juga penulis melakukan sharing ilmu
pengetahuan dengan mengunggah aplikasi ini ke website pengembang
aplikasi – aplikasi opensource. Agar aplikasi ini dapat terus berkembang
dan menjadi pengamalan ilmu pengetahuan yang penulis miliki. Untuk
pembahasan akan dijelaskan pada sub bab 4.4.
Ilustrasi metodologi penelitian yang penulis lakukan dapat dilihat
pada Gambar 3.2.
45
Gambar 3.2. Ilustrasi Metodologi Penelitian Aplikasi email dan FTP Client pada Domain Web
Gambar 3.2. Ilustrasi Metodologi Penelitian Aplikasi email dan FTP Client
pada Domain Web
BAB IV
HASIL DAN PEMBAHASAN
Perancangan dan pengembangan “Aplikasi Menggabungkan Email Client
dan File Tranfer Protocol (FTP) Client Pada Domain Web” ini menggunakan
metode Rapid Aplication Development (RAD). Menurut Kendall & Kendal
(2003;238), tahapan – tahapan RAD terdiri atas fase perencanaan syarat – syarat,
fase perancangan, fase konstruksi dan fase pelaksanaan.
4.1. Fase Perencanaan Syarat – Syarat
Pada fase perencanaan syarat – syarat ini merupakan penjelasan yang
melatar belakangi penulis melakukan penelitian ini. Terdapat tiga hal yang
penulis jelaskan untuk terwujudnya aplikasi email dan FTP client pada
domain web yaitu analisa kebutuhan, tujuan dan syarat – syarat.
4.1.1. Analisis Kebutuhan
Pada tahap ini dilakukan pebandingan dari aplikasi penelitian
yang digunakan sebelumnya. Penelitian tersebut menjadi analisis
kebutuhan pada penelitian ini yang merupakan studi literatur dari
penelitian yang penulis lakukan. Aplikasi – aplikasi dari penelitian
sebelumnya diterangkan pada sub bab ini dengan keterangan sebagai
berikut ini :
46
47
1. Aplikasi FTP Client
Nama aplikasi “FTPku”.
Judul Skripsi “Pengembangan Aplikasi FTP Client berbasis web
dengan teknologi Ajax”.
2. Aplikasi Active Directory Email
Nama aplikasi “ZIMBRA”
Judul Skripsi “Pengembangan Sistem Otentikasi User dengan
Active Directory Windows Server 2003 Studi Kasus Email Server
Zimbra (RHEL 4) ”.
Untuk perbandingan di buat tabel pada aplikasi yang akan
penulis wujudkan yaitu aplikasi Hafiz eFTP Client dengan tabel 4.1.
Tabel 4.1.
Perbandingan Aplikasi Hafiz eFTP Client, FTPku dan ZIMBRA
Hafiz e FTPClient FTPku ZIMBRA
User Interface Desktop GUI Web Based Web Based
Network Internet Localhost PC Intranet
Platform All All withBrowser Enable
All withBrowser Enable
Licence Opensource Opensource Shareware
Server Use Email and FTP FTP Email
ProgrammingLanguage
Java SwingFramework
PHP withAJAX
PHP Framework
Development Continue n/a Continue
48
Untuk memperjelas analisis kebutuhan pada penelitian ini
penulis juga memberikan kuesioner online berbasis web pada alamat
url http://survey.yadiacho.com/survey.php?sid=04FF8A. Kuesioner
atau angket ini diisi oleh 20 responden.
Kuesioner ini bersifat tertutup, dimana responden hanya dapat
memilih jawaban – jawaban yang telah disediakan. Kemudian
kuesioner dianalisis dengan menghitung persentase jumlah jawaban
dari responden untuk setiap pertanyaan yang dipilih dengan
menggunakan tabel distribusi frekuensi. Berikut ini tabel hasil
kuesioner yang penulis lakukan :
Tabel 4.2.
Angket Analisis Kebutuhan Email dan FTP Client
No. Pertanyaan Jawaban Jumlah Persentase
(%)1 Domain Name System (DNS) atau Domain web
merupakan penamaan pada komputer atau sebuah
server, seperti ; google.com, yahoo.com,
uinjkt.ac.id, kaskus.com dan lain sebagainya.
Apakah anda mengetahui hal ini :
a. Ya
b. Tidak
• 100
• 00
2 Pada Sebuah Domain web terdapat fitur seperti
Apache PHP, MySQL, Server Mail,FTP Server dan
SSL. Apakah anda mengetahui hal ini?
a. Ya
b. Tidak
• 100
• 00
3 Domain web pada rumah hosting untuk
maintenance di butuhkan aplikasi pendukung yang
berjalan di komputer client untuk mengelola
a. Ya
b. Tidak
• 100
• 00
49
domain web. Umumnya rumah hosting telah
menyediakan fasilitasnya pada sebuah web
browser. Apakah anda pernah menggunakan
aplikasi tersebut?4 Apakah anda mengetahui aplikasi Email Client
seperti Ms. Outlook, Thunderbird, Evollution dan
lain sebagainya :
a. Ya
b. Tidak
• 100
• 00
5 Apakah anda sering menggunakan aplikasi Email
Client?
a. Ya
b. Tidak
• 90
• 106 Apakah anda mengetahui aplikasi File Transfer
Protokol (FTP) Client seperti FileZilla, CuteFTP
dan lain sebagainya?
a. Ya
b. Tidak
• 100
• 00
7 Apakah anda sering menggunakan aplikasi FTP
Client?
a. Ya
b. Tidak
• 80
• 208 Untuk dua aplikasi tersebut Email Client dan FTP
Client. Apakah anda merasa bingung atau kesulitan
untuk konfigurasi agar terkoneksi dengan Server
Domain web?
a. Ya
b. Tidak
• 70
• 30
9 Apakah anda membutuhkan aplikasi yang
sederhana dan mudah dalam melakukan
konfigurasi ke server domain web?
a. Ya
b. Tidak
• 100
• 00
10 Apakah anda membutuhkan aplikasi desktop yang
berjalan stand alone di komputer anda dengan
tampilan Graphic User Interface (GUI) atau sistem
jendela?
a. Ya
b. Tidak
• 100
• 00
Dari hasil angket pada tabel 4.2. pada jumlah persentase yang
mendekati sempurna dari keseluruhan kuesioner. Penulis dapat
menarik sebuah kesimpulan bahwa pengguna membutuhkan aplikasi
50
yang dapat menggabungkan email dan FTP client yang dapat dengan
mudah digunakan.
4.1.2. Tujuan
Berdasarkan hasil masukan pengguna, data email, FTP dan
DNS yang ada pada analisis kebutuhan yang telah penulis lakukan,
maka penulis bertujuan untuk mewujudkan sebuah aplikasi email
dan FTP client pada domain web yang dengan mudah dapat
digunakan oleh pengguna. Maintenance pada domain web bisa
dilakukan oleh pengguna tanpa harus memiliki latar belakang
programmer atau system administrator.
4.1.3. Syarat – Syarat
Untuk mewujudkan tujuan tersebut maka dibutuhkan beberapa
syarat dalam pengembangan aplikasi email dan FTP client ini yaitu
meliputi hal – hal sebagai berikut :
1. Domain Web
Domain web digunakan sebagai server utama yang
mendukung penamaan pada sebuah server atau DNS. Domain
web menjadi penamaan alamat pada email dan FTP Server. Untuk
nama domain yang penulis gunakan akan dibuat pada fase
konstruksi sub bab 4.3. Domain web dibuat menggunakan layanan
yang diberikan hostgokil.com dengan nama domain
yadiacho.com.
51
2. Email Server
Server mail sebagai pendukung penggunaan pengiriman dan
penerimaan email. Email server yang ada mengikuti dukungan
yang diberikan dari hosgokil.com
3. FTP Server
Server FTP yang menggunakan protokol transfer file melalui
port 21 yang dapat mengurangi traffic pada jaringan internet. FTP
server untuk sebuah domain web umumnya telah menjadi 1 paket
dalam layanan pembelian sebuah domain web.
4. Bahasa Pemrograman Java
Pada pembuatan aplikasi ini menggunakan bahasa
pemrograman java dengan package library pendukung aplikasi ini
seperti SWING, JavaMail API 1.4 dan JvFTP.
4.2. Fase Perancangan
4.2.1. Perancangan Proses
Dalam merancang proses pada aplikasi email dan FTP Client
pada domain web ini penulis menggunakan notasi UML sebagai alat
bantu dalam merancang proses yang akan terjadi pada aplikasi. Pada
penelitian ini penulis membuat usecase diagram, class diagram,
activity diagram dan sequence diagram. Pembuatan perancangan ini
penulis menggunakan tools Umbrello UML Modeller version 2.4.1.
Untuk membantu penulis melakukan perancangan UML.
52
4.2.1.1. Use Case Diagram
Pada aplikasi ini, terdapat beberapa use case antara lain use
case authentication system, use case sending email, use case
receiving email, use case attaching file, use case conecting ftp server,
use case sending file to ftp server, use case downloading from ftp
server, use case rename file or directory dan use case create
directory.
Use case diagram untuk pengembangan aplikasi Hafiz eFTP
Client ini dapat dilihat pada gambar 4.1. Untuk aktor menggunakan
aktor tunggal yaitu user. Berikut ini scenario use case dari beberapa
use case diatas :
Gambar 4.1. Use Case Diagram Hafiz eFTP Client
53
a) Use Case Authentication System
Tabel 4.3 Scenario Use Case Authentication System
Use Case Authentication SysttemActor UserTrigger Authenticate into server DNS or email web
serverPre Condition Loading DialogAction Retrieving information about hostname,
username and passwordPost Condition Sending Username and password
b) Use Case Sending Email
Tabel 4.4. Scenario Use Case Sending Email
Use Case Sending EmailActor UserTrigger Sending Plain text or html Email.Pre Condition Authenticate SystemAction Retrieving information about hostname,
username and passwordPost Condition Sending plain text or html data into server
DNS email
c) Use Case Receiving Email
Tabel 4.5. Scenario Use Case Receiving Email
Use Case Receiving EmailActor UserTrigger Receiving Plain text or html Email.Pre Condition Reading header subject email and count itAction Retrieving information about hostname,
54
username and passwordPost Condition Rceiving plain text or html data into server
DNS email
d) Use Case Attaching File
Tabel 4.6. Scenario Use Case Attaching File
Use Case Attaching FileActor UserTrigger Reading local data file and retrieving it.Pre Condition Retrieving data file and read all information
about the fileAction count data file attachment capacity for ability
to UploadingPost Condition Uploading data file into server DNS email
e) Use Case Conecting Ftp Server
Tabel 4.7. Scenario Use Case Conecting Ftp Server
Use Case Conecting Ftp ServerActor UserTrigger Authenticate into ftp server with properties
data filePre Condition Retrieving Command Data String with
progress dialogAction Retrieving information about server name,
username and passwordPost Condition Sending data authentication with username
and password
55
f) Use Case Sending File to Ftp Server
Tabel 4.8. Scenario Use Case Sending File to Ftp Server
Use Case Sending File to Ftp ServerActor UserTrigger Get data file from local directory into server
directory web domainPre Condition Selected item from file list in local directoryAction Item selected prepare with information
summary and ready to copyPost Condition File accepted into destination.
g) Use Case Downloading From Ftp Server
Tabel 4.9. Scenario Use Case Downloading From Ftp Server
Use Case Downloading From Ftp ServerActor UserTrigger Copy data from server directory into local
directoryPre Condition Selected item from file list in server directoryAction Item selected prepare with information
summaryPost Condition File accepted into destination.
h) Use Case Rename File or Directory
Tabel 4.10. Scenario Use Case Rename File or Directory
Use Case Rename File or DirectoryActor UserTrigger Changging The filenamePre Condition Selected file in the File listAction Change text field box with the name of file
56
Post Condition File changed with new name in the file list
i) Use Case Create Directory.
Tabel 4.11. Scenario Use Case Create Directory.
Use Case Create Directory.Actor UserTrigger Create a new directory into local directory or
server directoryPre Condition Selected the list folder destinationAction Give the new name for new directoryPost Condition Accepted new name in the directory list
4.2.1.2. Class Diagram
Aplikasi Hafiz eFTP Client memiliki kelas utama yaitu class
MailClient.java sebagai main class. Main class ini memiliki korelasi
yang saling terhubung. Berikut ini merupakan package dari
pembuaan aplikasi Hafiz eFTP Client.
Gambar 4.2. Package Hafiz eFTP Client
Untuk korelasi class – class yang digunakan ditunjukan dengan
tabel – tabel berikut ini :
57
Tabel 4.12. Package com.acho.skripsi.email
Class Summary
MailClient Main Execution For Hafiz eFTP Client to work with MailClient.java to have corelation to other class
Tabel 4.13. Package com.acho.skripsi.email.client
Class SummaryachoMail Main class for all mail utilities work..mailCaret mailCaret.java for Achosoft Corp.MailClient_AboutBoxPanel1
Author Explainaion with Box MailClient_AboutBoxPanel1.java
MailListPanel Panel for all list of email MailListPanel.javamailScrollBarUI mailScrollBarUI.java
mailScrollPane Scroll panel for email mailScrollPane.java
NewMailPanel Mail panel for compossing new email from User NewMailPanel.java
ProgressDialog Box with progress bar task ProgressDialog.java
Tabel 4.14. Package com.acho.skripsi.email.themes
Class Summary
MetalThemeMenu This class describes a theme using "green" colors.
SteelmeTheme A MetalTheme with persistence and public accessor methods.
Tabel 4.15. Package com.acho.skripsi.email.utils
Class Summary
MailConstant Accessing properties file aplication for hafiz eFTP Client to connecting into domain MailConstant.java
Util Set File input Stream For HAfiz eFTP Configuration Util.java
58
Tabel 4.16. Package com.acho.skripsi.ftp
Class Summary
Ftp Allows connect to FTP server and maintains control connection.
FtpConnect Wrapper for FTP connect & login information.FtpContext Maintains FTP client settings & context.FtpFile Allows uniform manipulation with FTP files.FtpInputStream Allows reading from FTP file.FtpListInputStream Allows to list FTP directory.FtpOutputStream Allows writing into FTP file.FtpSetting Wrapper for FTP client settings.
Tabel 4.17. Package com.acho.skripsi.io
Interface Summary
CoComparable PS: Comparable is only implemented since JAVA 2.
CoFile Allows uniform manipulation with files from various sources.
CoFilenameFilter Defines interface of filtering files.
CoOpen Defines interface to get input / output stream on CoFile objects.
CoOrder Allows to compare CoFile objects.CoSource Defines interface of file system source.
Class SummaryCoLoad Copies files.CoSort Orders, filters and splits arrays of CoFile objects.LocalFile Allows uniform manipulation with local files.LocalSource Local File system source.
Tabel 4.18. Package com.acho.skripsi.swing Class Summary
JCoConsoleTextArea Displays remote commands and server replies.
59
JCoControlPanel Contains copy, delete and rename buttons.
JCoDirComboBox Swing Directory Selector Combo Box Component.
JCoFileActions Having Action with File
JCoFileTable Swing Directory Selector Combo Box Component.
JCoStatusPanel Displays properties for file.JFtpBrowsePanel Allows browsing FTP files.JFtpCommandPanel Allows entering commands manually.JFtpConnectPanel Contains connect and disconnect buttons.JFtpCopy Sample implementation of
JLocalBrowsePanel in conjunction with JFtpBrowsePanel
JFtpLoginPanel Allows setup connection details.JFtpOpen Sample implementation of FtpBrowsePanel.JLocalBrowsePanel Allows browsing local files.
JLocalOpen Sample implementation of LocalBrowsePanel.
JMultiLabel Multiple Line LabelJTabbedPanel Tabbed Panel
Tabel 4.19. Package com.acho.skripsi.ui
Interface Summary
CoConsole Defines interface to display client network commands and server replies.
CoProgress Defines interface to display progress.CoStatus Defines interface to display file status.CoTabbed Defines interface to swith tabs.
Tabel 4.20. Package com.acho.skripsi.util
Class SummaryCoActiveMap Active MapCoHandleMap Handle Map
60
Dari tabel – tabel diatas menunjukan keterhubungan antar class
berikut dengan fungsi masing – masing. Hafiz eFTP Client dapat
bekerja dengan baik sebagai aplikasi email dan FTP Client pada
domain web.
4.2.1.3. Activity Diagram
Activity Diagram merupakan diagram yang menggambarkan
berbagai aliran aktivitas yang terjadi di dalam sistem, yang meliputi
bagaimana sebuah proses dapat terjadi, kemungkinan-kemungkinan
yang bisa terjadi, serta bagaimana akhir dari proses tersebut.
Mengingat adanya proses-proses yang memiliki kesamaan alur, maka
pada sistem ini, penulis hanya memaparkan 4 (empat) macam Activity
diagram yang terjadi pada sistem yaitu :
a. Authentication System
Gambar 4.3. Activity Diagram Authenticate
Pada Gambar 4.3. sebuah aktivitas yang dilakukan oleh sistem
untuk melakukan sebuah authenticate untuk mengakses server DNS
email dengan akun server yang lebih dahulu di input. User tidak
perlu lagi melakukan login. Sistem akan mengirim data file
61
properties sebagai signal untuk melakukan authentikasi dan
menerima kembali data jika authentikasi benar. Jika terjadi kesalahan
sistem akan menampilkan file properties sistem yang memiliki akun
yang salah.
b. Sending Email
Untuk activity selanjutnya, sistem mengirimkan pesan dengan
activity system sebagai berikut:
Gambar 4.4. Activity Diagram Sending Email
Pada Gambar 4.4. sistem akan melakukan pengiriman signal
authentikasi ke DNS server lalu data yang telah diinput akan
dikirimkan ke DNS email server. Jika pengiriman gagal sistem akan
melakukan activity error message dan mengakhiri kerja sistem. Jika
data terkirim akan muncul pesan notifikasi bahwa data telah berhasil
terkirim.
c. Receiving Email
Penerimaan data email dari server ketika sistem telah
membuka tampilan layout jendala sistem dengan melakukan refresh
pada sistem dengan activity diagram sebagai berikut:
62
Gambar 4.5. Activity Diagram Receiving Email
Pada Gambar 4.5. User melakukan klik button refresh yang
ada pada sistem. Sistem akan retrieving signal dari DNS server
email. Maka data dari DNS Server email akan diterima oleh sistem.
Pada activity ini karna sistem telah terbuka dan sebelumnya telah
terjadi authenticate system signal. Jadi error log tidak akan terjadi.
d. Attaching File
Mengirimkan file data ke alamat tujuan sistem akan terlebih
dahulu melakukan input data file dari komputer lokal yang
dijelaskan sebagai berikut:
Gambar 4.6. Activity Diagram Attachment Email
Pada Gambar 4.6 pada activity diagram ini sistem akan
mengambil data dari komputer lokal (Browse File) lalu sistem akan
memeriksa asal sumber data dan membaca data tersebut. Sistem akan
melakukan authentikasi dengan signal lalu data akan terkirim ke
63
DNS server email. Jika data gagal terkirim akan terjadi activity error
log yang terjadi pada sistem. Jika berhasil akan muncul notifikasi
bahwa data telah terkirim. Pada sistem akan muncul jendela popup
dialog box.
4.2.1.4. Sequence Diagram
Sequence diagram menunjukan pertukaran pesan atau
pemanggilan method yang ada pada class object diantara beberapa
class object dalam waktu tertentu dengan pembatas situasi. Pada
sequence diagram akan memperjelas method yang digunakan.
a. Authentication System
Berikut ini merupakan sequence diagram untuk melakukan
authenticate system:
Gambar 4.7. Sequence Diagram Authenticate system Email
Pada gambar 4.7. merupakan pertukaran pesan yang terjadi
pada class achoMail melakukan sebuah authentikasi ke server
DNS. Pemanggilan method achoMailProcess() yang dieksekusi
64
oleh user lalu pada objek Email dengan class method achoMail juga
melakukan eksekusi method yang sama tapi dengan objek yang
berbeda. Method getMessage() melakukan eksekusi penerimaan
data dari objek email. Tentunya pada class object achoMail
memanggil method getPasswordAuthentication() untuk
terjadinya sebuah authentikasi ke DNS server email. Pada class
achoMail ini juga terjadi pemanggilan method yang lain.
Berikut ini adalah method yang dimaksud untuk melakukan
authenticate system:
private class achoAuthenticator extends javax.mail.Authenticator {
public PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(MailConstant.MAIL_SERVER_USER, MailConstant.MAIL_SERVER_PASSWORD);
}}
Script diatas merupakan class turunan dari achoMail() pada
script diatas merupakan eksekusi untuk mengirimkan pesan
authenticate system ke DNS Server email dengan membaca
username dan password dengan properties file.
b. Sending Email
Sequence diagram berikut ini sequence diagram untuk
melakukan pengiriman email:
65
Gambar 4.8. Sequence Diagram sending Email
Pada Gambar 4.8. merupakan sequence diagram bagaiman
sistem melakukan pengiriman data plain text atau html ke DNS
server email dengan melakukan pertukaran method
sendMailWithAtt() pada class objek achoMail. Pada Class ini juga
terdapat input tujuan dan isi pesan yang tekirim dari beberapa
method turunan dari class sendMailWithAtt(). Untuk menentukan
tujuan atau alamat pengiriman.
Berikut ini method yang diterjemahkan dari sequence diagram
diatas:
public boolean sendMailWithAtt(String sender_name, String email_from,String email_to, String email_cc, String email_bcc,String email_subject, String email_body, File file_name) {
66
boolean result = true;try {
// Gets the System propertiesProperties props = new Properties();props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", MailConstant.MAIL_SERVER_OUTGOING);if (MailConstant.MAIL_SERVER_AUTH != null
&& MailConstant.MAIL_SERVER_AUTH.equalsIgnoreCase("true")) {props.put("mail.smtp.auth", MailConstant.MAIL_SERVER_AUTH);
}if (MailConstant.OUTGOING_PORT != null
&& !MailConstant.OUTGOING_PORT.trim().equals("")) {
props.put("mail.smtp.port", MailConstant.OUTGOING_PORT);props.put("mail.smtp.socketFactory.port",MailConstant.OUTGOING_PORT);props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");props.put("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.quitwait", "false");}
Session session = null;if (MailConstant.MAIL_SERVER_AUTH != null
&& MailConstant.MAIL_SERVER_AUTH.equalsIgnoreCase("true")) {session = Session.getInstance(props, authen);
} else {session = Session.getInstance(props);
}// Get the default Session using Properties Object
session.setDebug(MailConstant.MAIL_DEBUG != null ? MailConstant.MAIL_DEBUG .equalsIgnoreCase("true"): false); // Enable the debug mode
// ----// Define messageMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(email_from));/* * Multiple receipent to */
67
if ( email_to != null && !email_to.trim().equals( "" )) {String tos[] = email_to.trim().split(",");Address toAdd[] = new Address[tos.length];for ( int i = 0; i < toAdd.length; i++ ) {toAdd[i] = new InternetAddress( tos[i] );
}
message.addRecipients(Message.RecipientType.TO, toAdd);
}
/* * Multiple receipent cc */
if ( email_cc != null &&!email_cc.trim().trim().equals( "" )) {String ccs[] = email_cc.split(",");Address ccAdd[] = new Address[ccs.length];for ( int i = 0; i < ccAdd.length; i++ ) {ccAdd[i] = new InternetAddress( ccs[i] );
}message.addRecipients(Message.RecipientType.CC,
ccAdd);}
/* * Multiple receipent bcc */
if ( email_bcc != null && !email_bcc.trim().trim().equals( "" )) {String bccs[] = email_bcc.split(",");Address bccAdd[] = new Address[bccs.length];for ( int i = 0; i < bccAdd.length; i++ ) {bccAdd[i] = new InternetAddress( bccs[i] );
}
message.addRecipients(Message.RecipientType.BCC, bccAdd);
}
message.setSubject(email_subject);message.setSentDate(new Date());/* * Body created */BodyPart messageBodyPart = new MimeBodyPart();/* * pushing the bosy text */messageBodyPart.setText(email_body);
68
Multipart multipart = new MimeMultipart();multipart.addBodyPart(messageBodyPart);
/* * If any attachement */messageBodyPart = new MimeBodyPart();if (file_name != null) {
DataSource source = new FileDataSource(file_name);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(file_name.getName());multipart.addBodyPart(messageBodyPart);
}
message.setContent(multipart);
Transport.send(message);
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<} catch (MessagingException mex) { // Trap the MessagingException Error
result = false;}return result;
}Script diatas class turunan dari achoMail class yang
melakukan eksekusi pengiriman email. Dari method diatas
menunjukan bagaimana pesan yang terambil dari class object lain.
Untuk menentukan tujuan dan alamat yang dituju untuk melakukan
pengiriman email.
c. Receiving Email
Dibawah ini akan dijelaskan sequence diagram bagaimana
email client yang dibuat dengan metode object oriented dapat
menerima email. Method yang digunakan terlihat seperti gambar
berikut ini:
69
Gambar 4.9. Sequence Diagram receiving Email
Method – method diatas tereksekusi saat menerima email dari
DNS server mail. Untuk mendapatkan email yang akan diterima oleh
user. System akan menampilkan tampilan GUI dengan menggunakan
class MailListPanel. Method yang digunakan untuk class ini yaitu
getMailListPanel(). Sebagai wadah informasi email yang
diterima dari DNS server mail. Pada class MailListPanel
mengirimkan message ke class MailClient untuk mendapatkan
kelas turunan dari MailClient() dan getMailListPanel().
Begitu juga dengn class MailClient yang mendapatkan method
getDefaultTableModel() dan MailListPanel() yang ada pada
class MailListPanel.
public MailClient() { try { UIManager.setLookAndFeel(new MetalLookAndFeel());
jbInit();
70
} catch (Exception ex) { }
}Pada script diatas mengatur sebuah tampilan GUI dengan
pemanggilan method jbInit() sebagai method dari GUI yang
akan ditampilkan untuk informasi pesan email.
public MailListPanel(MailClient mailClient, Message[]
messages) {
try {this.mailClient = mailClient;this.messages = messages;jbInit();} catch (Exception e) {
e.printStackTrace();}
}Script ini merupakan pesan yang akan digunakan untuk
mendapatkan informasi dari email yang ada pada DNS server mail.
Tampilan GUI dengan pemanggilan method jbInit()
public void reloadTableData(Message[] messages) {
this.messages = messages;/* * Create columns */CreateColumns();
/* * Populate mail messages data */if (messages != null && messages.length > 0)
synchronized( messages ) {CreateData();
}
// Create a new table instancedefaultTableModel = new DefaultTableModel( dataValues , columnNames ) {public boolean isCellEditable(int row, int col) {
return false;}
};
71
table = new JTable(defaultTableModel);/* * Column size set */TableColumn col1 =table.getColumnModel().getColumn(0);col1.setMaxWidth(35);TableColumn col2 =table.getColumnModel().getColumn(1);col2.setMaxWidth(35);TableColumn col3 =table.getColumnModel().getColumn(2);col3.setPreferredWidth(200);TableColumn col4 =table.getColumnModel().getColumn(3);col4.setPreferredWidth(200);TableColumn col5 =table.getColumnModel().getColumn(4);col5.setPreferredWidth(100);TableColumn col6 =table.getColumnModel().getColumn(5);col6.setMaxWidth(100);
table.getTableHeader().setFont(new Font("Verdana", Font.BOLD, 13));table.setFont(new Font("Aerial", Font.BOLD, 13));// Configure some of JTable's paramterstable.setShowVerticalLines(false);// Adding mouse Listenertable.addMouseListener(this);col6.setCellRenderer(new DefaultTableCellRenderer() {public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {JLabel ret = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
ret.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
return ret;}
});
// Add the table to a scrolling panescrollPane = new mailScrollPane(table, mailScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, mailScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);}
Dari method diatas pesan email retrieving dari DNS server
akan ditampilkan dengan sebuah tabel dengan tampilan GUI.
// Create a new table instance
72
defaultTableModel = new DefaultTableModel( dataValues , columnNames ) {public boolean isCellEditable(int row, int col) {
return false;}
};
Sistem akan membuat tabel default jika pesan dari kelas utama
telah diterima
d. Attaching File
Berikut ini sebuah sequence diagram untuk melakukan
attachment file dengan alur proses method yang digunakan untuk
mengambil file path yang ada pada direktori.
Gambar 4.10. Sequence Diagram sending Email with Attachment
Dari method yang ada pada gambar getDataValues()
merupakan method untuk mendapatkan informasi yang ada pada file
yang menjadi attachment. Berikut ini adalah method yang dimaksud:
public synchronized void CreateData() {
73
// Create data for each elementdataValues = new String[messages.length][6];for (int i = 0; i < messages.length; i++) {
try {if (!messages[i].isSet(Flags.Flag.SEEN)) {
dataValues[i][0] = "" +messages[i].getMessageNumber();dataValues[i][1] = "";
if ( Util.getString("MAIL_ATTACHMENT_CHECK_ONLOAD").startsWith("true")) {// Very heavy to use this.boolean hasAttachment = mailClient .getAchoMail(). hasAttachment ( messages [i]) ;if (hasAttachment)dataValues[i][1] = "@";
}dataValues[i][2] = messages[i].getFrom()[0].toString();dataValues[i][3] = messages[i].getSubject();dataValues[i][4] = messages[i].getSentDate() + "";BigDecimal mb = new BigDecimal(messages[i].getSize());BigDecimal divisor = new BigDecimal(1028 * 1028);mb = mb.setScale(2, BigDecimal.ROUND_HALF_UP);dataValues[i][5] = "" + mb.divide(divisor, BigDecimal.ROUND_UP);
}} catch (MessagingException e) {
e.printStackTrace();}
}}
Dari script diatas method CreateData() tetap menggunakan
class induk mailClient yang memungkinkan terjadinya
pengambilan data file yang akan dijadikan attachment.
boolean hasAttachment = mailClient .getAchoMail(). hasAttachment ( messages [i]) ;
Informasi alamat dari email juga digunakan sebagai informasi
dari email yang akan dikirim. Dengan variabel dataValues sebagai
variabel informasi email tersebut.
74
4.2.2. Perancangan Antar Muka
Dalam perancangan antar muka atau graphic user interface
(GUI) aplikasi Hafiz eFTP ini dibuat jendela tampilan yang dapat
dengan mudah dimengerti oleh pengguna, antara lain adalah sebagai
berikut :
1. Loading Authentication
Jendela window Loading Authentication merupakan tampilan
awal dari aplikasi. Rancangan tampilan Jendela window Loading
Authentication dapat dilihat pada gambar 4.11.
Gambar 4.11. Rancangan Loading Authentication
Garis tebal pada gambar 4.11 menunujukan bahwa jendela
yang akan dibuat menggunakan library LookAndFeel untuk
tampilan grafik lebih menarik. Pada bagian Loading Gif saat
proses authentication system task melakukan eksekusi.
Sedangkan untuk tombol button 1 dengan text caption Cancel
yang berfungsi untuk membatalkan eksekusi aplikasi.
Loading Gif
Button 1
75
2. Main Window
Jendela window ini merupakan tampilan utama dari aplikasi
Hafiz eFTP Client. Jendela window ini melakukan berbagai
operasi email dan FTP. Jendela window ini memiliki beberapa
menu untuk menjalankan operasi – operasi utama. Bagian utama
dari jendela Main Window yaitu Main Menu, Menu with Icon
Images, List Panel for Email dan Reading and Writing Pane.
Rancangan Jendela window utama menggunakan garis tipis
berarti pada frame yang dibuat tidak menggunakan Library
LookAndFeel dan gambar dapat dilihat pada gambar 4.12
Gambar 4.12 Rancangan Main Window
<< List Panel for Email >>
<< Reading and Writing Pane >>
<< Menu wih Icon images >>
<< Main Menu >>
76
Rancangan Jendela window utama dapat dijelaskan
berdasarkan bagian – bagian utama dari rancangan :
a) Bagian Main Menu
Terdiri dari beberapa menu utama untuk melakukan operasi
seperti File, Ftp, Theme dan Help sebagai menu tingkat
pertama.
b) Bagian Menu wih Icon images
Menu ini terdiri dari Refresh, Send Mail, New Mail dan
Attachment File
c) Bagian List Panel for Email
Bagian ini terdiri dari table dengan field ID, Att, From,
Subject, Received Date dan Size[MB] yang berisi informasi
field record dari server mail.
d) Bagian Reading and Writing Pane
Bagian ini merupakan text area untuk membaca email yang
ada di server mail.
3. Composing Email
Tampilan jendela ini merupakan tampilan disaat user
melakukan pengiriman email baru. Tampilan awalnya bagian
main window. Terdapat penambahan field – field dan label sesuai
dengan kebutuhan dan fungsi masing-masing. Dengan field –
field dan label tambahan yang ditunjukan pada gambar 4.13.
77
Gambar 4.13 Rancangan Composing email
Pada gambar 4.13. dilakukan penambahan 4 buah field dan
1 buah label yang sebelumnya digunakan untuk list panel email
dengan keterangan sebagai berikut :
a) Field 1
Penyediaan kolom field untuk menuliskan email tujuan
pengiriman email. Dengan caption field [To].
b) Field 2
Penyediaan kolom field untuk menuliskan email tujuan
pengiriman email. Dengan caption field [Cc].
<< Reading and Writing Pane >>
<< Menu wih Icon images >>
<< Main Menu >>
<< Field 1 >>
<< Field 2 >>
<< Field 3 >><< Field 4 >>
<< Label 1 >>
78
c) Field 3
Penyediaan kolom field untuk menuliskan email tujuan
pengiriman email. Dengan caption field [Bcc].
d) Field 4
Penyediaan kolom field untuk menuliskan subject atau judul
dari pengiriman email. Dengan caption field [Subject].
e) Label 1
Penyediaan text untuk status pengiriman email dengan file
atau attachment. Dengan text [Attachment].
Untuk bagian rancangan Main Menu, Menu wih Icon
images dan Reading and Writing Pane. Menggunakan tampilan
sebelumnya atau sama dengan rancangan pada gambar 4.12.
Rancangan Main Window. Ketiga bagian rancangan tersebut
memiliki fungsi sama seperti sebelumnya.
4. FTP Client Window
Pada tampilan jendela ini menampilkan jendela window
baru dengan menggunaka desain grafik library LookAndFeel.
Alasan kenapa menggunakan jendela baru karena agar tidak
menutupi aplikasi sebelumnya pada jendela main window untuk
email client. Pengguna akan menggunakan aplikasi email client
dan FTP client secara bersamaan. Untuk rancangan ini ditunjukan
pada gambar 4.14.
79
Gambar 4.14 Rancangan FTP Client Window
Pada gambar 4.14. dapat dijelaskan bagian – bagian dari
jendela tersebut antara lain :
a) Tab Menu
Pada bagian ini terdapat 3 (tiga) buah menu – menu tab yaitu
Tab Login sebagai tampilan awal dan pre-connection
information ke server FTP, Tab List sebagai directory listing
pada local directory dan server directory. Tab Log sebagai
informasi log yang terjadi pada saat pengoperasian FTP
b) Connection Information
Pada bagian ini berisi informasi koneksi yang akan dieksekusi
dengan informasi host address, username, password, initial
folder, port, transfer mode dan list command. Yang disertai
<< Tab Menu >>
<< Connection Information >>
Button 1 Button 3Button 2
80
tips jika terjadi kegagalan koneksi.
c) Button 1
Penempatan Tombol dengan caption Connect yang berfungsi
sebagai pengeksekusi koneksi ke server FTP.
d) Button 2
Penempatan Tombol dengan caption Disconnect yang
berfungsi sebagai pemutus koneksi ke server FTP.
e) Button 3
Penempatan Tombol dengan caption Close yang berfungsi
sebagai pemutus koneksi ke server FTP dan menutup aplikasi.
5. Tab List
Pada tampilan jendela Tab list merupakan sub tab dari FTP
Client Window dengan rancangan gambar 4.15 :
Gambar 4.15 Rancangan Tab List
<< Tab Menu >>
<< Directory List 2 >>
Button 1 Button 3Button 2
<< Directory List 1 >>
<< Combo Menu 1 >> << Combo Menu 2 >>
<< Combo Menu 5 >><< Combo Menu 6 >>
<< Combo Menu 3 >><< Combo Menu 4>>
Button 4<< Label 1>>
81
Pada Gambar 4.15 dapat dijelaskan bahwa :
a) Directory List 1
Merupakan daftar dari direktori lokal dengan tabel yang
memiliki field coulumn File Name, Property dan Last
Modified.
b) Directory List 2
Merupakan daftar dari direktori server dengan tabel yang
memiliki field coulumn File Name, Property dan Last
Modified.
c) Combo Menu 1
Menu list pada local directory dengan caption Look in
d) Combo Menu 2
Menu list pada server directory dengan caption Look in
e) Combo Menu 3
Menu list untuk file extention filtering dengan caption File
Type berada pada sisi local directory.
f) Combo Menu 4
Menu list untuk pengurutan file dengan caption Order By :
berada pada sisi local directory.
g) Combo Menu 5
Menu list untuk file extention filtering dengan caption File
Type berada pada sisi server directory.
82
h) Combo Menu 6
Menu list untuk pengurutan file dengan caption Order By :
berada pada sisi server directory.
i) Button 1, 2, 3 dan 4
Tombol dengan caption Copy, Delete, Rename dan New Dir
j) Label 1
Label Status dari pengoperasian FTP Client.
6. Tab Log
Pada Tampilan ini berisi log information dari pengoperasian
FTP Client berikut dengan perintah – perintah FTP yang terjadi
pada server. Untuk rancangan dijelaskan dengan gambar sebagai
berikut :
Gambar 4.16 Rancangan Tab Log
<< Tab Menu >>
<< Log Information >>
Button 1<< Field 1 >>
83
Rancangan pada Gambar 4.16. dapat dijelaskan dengan
keterangan sebagai berikut :
a) Log Information
Text area yang berisi log information pada pengoperasian FTP
Client dan juga berisi informasi status dari server FTP.
b) Field 1
Comand line untuk melakukan ekseskusi secara manual sesuai
dengan perintah – perintah FTP server dengan caption
Command :
c) Button 1
Tombol pengeksekusi command line dengan caption Enter.
4.3. Fase Konstruksi
Pada fase ini dilakukan pengkodean terhadap rancangan – rancangan
yang telah didefinisikan sebelumnya menggunakan bahasa pemrograman
java dengan library - library pelengkap aplikasi email dan FTP yaitu
JavaMail, SWING dan JvFTP. Untuk melakukan pengkodean penulis juga
menggunakan software Eclipse IDE versi 3.3 dan desain GUI menggunakan
package standar java yaitu package LookAndFeel.
Untuk source code pelengkap aplikasi penulis mengambil sumber dari
situs developer software yaitu pada http://sourceforge.net. Untuk sourcecode
aplikasi Email Client menggunakan source code ZangoZack v1.2 dari
http://sourceforge.net/projects/zangozack dan untuk source code aplikasi
84
FTP Client menggunakan source code JvFTP Client dari
http://sourceforge.net/projects/jvftp.
Penulis menggabungkan kedua aplikasi tersebut menjadi satu dengan
menyatukan method – method yang telah ada untuk dilakukan
pengembangan agar terwujudnya aplikasi Hafiz eFTP Client. Hafiz eFTP
Client ini juga menjadi project open source dan dipublikasikan juga di situs
developer software yaitu SourceForge.
Untuk susunan dari class – class penulis menyertakan pula lisensi
Genuine Public Licence (GPL) pada header atas berbentuk comment block
sebagai lisensi bahwa source code ini dapat dikembangkan lagi walaupun
oleh programmer yang berbeda. Contoh GPL seperti dibawah ini :
/* JvFTP LGPL * * JvFTP was developed by http://sourceforge.net/users/bpetrovi * The sources was donated to sourceforge.net under the terms * of GNU Lesser General Public License(LGPL).Redistribution of * any part of JvFTP or any derivative works must * include this notice. */
Untuk lisensi opensource lainnya menggunakan comment block
berikut yang menyertakan author dan version dari script file :
/**
* Main class for all mail utilities work.. * @author Ashok Das * @since May 13, 2008 * @version 1.2 * *//** * Allows connect to FTP server and * maintains control connection. * * @version 0.72 08/10/2003 * @author Bea Petrovicova */
85
4.4. Fase Pelaksanaan
pada fase ini penulis membahas bagaimana penulis melakukan instalasi
atau pemasangan domain web dengan mengatur konfigurasi server yang
dibutuhkan. Setelah dilakukan hal tersebut penulis juga melakukan
pengujian aplikasi. Hal – hal diperjelas dengan keterangan sebagai berikut :
4.4.1. Pemasangan dan Konfigurasi Domain Web
Pemasangan domain web dilakukan di sebuah rumah hosting
hostgokil.com. Untuk nama domain web atau DNS pada penelitian
ini yaitu :
Url Nama Domain : http://yadiacho.com
Harga Domain (*.com) : Rp. 95.000,-
Untuk kapasitas atau storage dengan perincian harga sebagai
berikut :
Tabel 4.21. Daftar harga Hosting Domain
USA-SA USA-SB USA-SCDisk Space 50 MB 75 MB 100 MBBandwidth / bulan 10 GB 15 GB 20 GBMinimum Kontrak 1 Tahun 1 Tahun 1 TahunPark Domain 1 2 3Addon Domain n/a n/a 1Biaya / tahun Rp 20.000,- Rp 30.000,- Rp 40.000,-Biaya Setup GRATIS GRATIS GRATIS(Sumber : Hostgokil.com, tgl.17 May 2010)
Pada penelitian ini penulis menggunakan server USA-SC yang
dibeli dari hostgokil.com. Untuk fitur yang dimiliki oleh server ini
86
terlihat pada tabel berikut :
Tabel 4.21. Fitur Hosting Domain
CATEGORY REMARKSDomains • Unlimited Subdomain
• URL redirect Programming • SSI
• PHP 4 dan PHP 5• Frontpage extension• Phyton • CGI • Perl • WAP
Email • Unlimited Email Account• POP3 dan SMTP• Email Forwarders• MX Records• Email Autoresponders
Analysis and Statistics • Web/FTP Stats• Error log• Bandwidth Meter• Latest Visitors
Databases • Unlimited mySQL• phpMyAdmin• Unlimited postgre• SQLphpPgAdmin
Multimedia • Real audio / video• Shockwave / Flash• Windows media• FFmpeg
Untuk konfigurasi yang dilakukan penyesuaian dengan
konfigurasi yang ada pada domain web dengan konfigurasi sistem
aplikasi Hafiz eFTP Client. Konfigurasi sistem ditulis kedalam
87
sebuah file properties dengan nama file hafizeftp.properties dengan
konfigurasi sebagai berikut :
#Hafiz eFTP Client Configuration
#No Need Changes #Leave as it isMAIL_SERVER_INCOMING=mail.yadiacho.comMAIL_SERVER_OUTGOING=mail.yadiacho.com
#Provide your gmail user name and [email protected]_SERVER_PASSWORD=123***
#No Need Changes #Leave as it isOUTGOING_PORT=INCOMING_PORT=
#FTP Server ConfigurationFTP_SERVER=ftp.yadiacho.comFTP_USERNAME=yadiachoFTP_PASSWORD=****01285FTP_INITIAL_FOLDER=FTP_PORT=21
#No Need Changes #Leave as it is [This section for advanced user] MAIL_SERVER_AUTH=trueMAIL_DEBUG=falseMAIL_CONTENT_TYPE=text/html;charset=UTF-8
Pengeksekusi dari file hafizeftp.properties terletak pada file
hafizeftpConstant.java dengan script sebagai berikut :
public class hafizeftpConstant {public final static String MAIL_SERVER_INCOMING =
Util.getString("MAIL_SERVER_INCOMING");public final static String MAIL_SERVER_OUTGOING =
Util.getString("MAIL_SERVER_OUTGOING");
public final static String INCOMING_PORT = Util.getString("INCOMING_PORT");
public final static String OUTGOING_PORT = Util.getString("OUTGOING_PORT");
public final static String MAIL_SERVER_AUTH = Util.getString("MAIL_SERVER_AUTH");
88
public final static String MAIL_SERVER_USER = Util.getString("MAIL_SERVER_USER");
public final static String MAIL_SERVER_PASSWORD = Util.getString("MAIL_SERVER_PASSWORD");
public final static String MAIL_DEBUG = Util.getString("MAIL_DEBUG");
public final static String MAIL_CONTENT_TYPE = Util.getString("MAIL_CONTENT_TYPE");
public final static String INBOX = "INBOX";public final static String POP_MAIL = "pop3";public final static String SMTP_MAIL = "smtp";public final static String BACK_COLOR_R =
Util.getString("BACK_COLOR_R"); public final static String BACK_COLOR_G =
Util.getString("BACK_COLOR_G");public final static String BACK_COLOR_B =
Util.getString("BACK_COLOR_B");
public final static String FORE_COLOR_R = Util.getString("FORE_COLOR_R");
public final static String FORE_COLOR_G = Util.getString("FORE_COLOR_G");
public final static String FORE_COLOR_B = Util.getString("FORE_COLOR_B");
public final static String FTP_SERVER_DOMAIN = Util.getString("FTP_SERVER");
public final static String FTP_SERVER_USER = Util.getString("FTP_USERNAME");
public final static String FTP_SERVER_PASSWORD = Util.getString("FTP_PASSWORD");
} Untuk penggabungan 2 aplikasi yang berbeda terletak pada
public final static String MAIL_SERVER_INCOMING = Util.getString("MAIL_SERVER_INCOMING");
public final static String MAIL_SERVER_OUTGOING = Util.getString("MAIL_SERVER_OUTGOING");
Pada script diatas untuk koneksi ke server email yang ada pada
domain web dan untuk server FTP terletak pada script dibawah ini :
public final static String FTP_SERVER_DOMAIN = Util.getString("FTP_SERVER");
89
Untuk penterjemahan code script programming yang telah
penulis lakukan terdapat pada bagian lampiran pada penulisan skripsi
ini. Penulis melakukan penambahan maupun perubahan source code
menggunakan tools Eclipse IDE 3.3
Untuk pembuatan file executable binaries (.exe) pada
penelitian ini penulis menggunakan aplikasi JSmooth 0.9.9-7
software untuk membuat aplikasi java (*.jar/*.class) menjadi (*.exe)
dengan setup builder installer menggunakan aplikasi Inno Setup
version 5.3.9.
4.4.2. Pengujian Aplikasi
Pengujian yang dilakukan terhadap aplikasi Hafiz eFTP Client
ini adalah pengujian dengan metode BlackBox. Pengujian dilakukan
dengan menjalankan semua fungsi dan fitur yang ada dari aplikasi ini
dan kemudian dilihat apakah hasil dari fungsi – fungsi tersebut sesuai
dengan yang diharapkan. Aplikasi dijalankan secara online dengan
domain web yang telah ada. Domain http://yadiacho.com akan
digunakan untuk pengujian.
Untuk pemasangan konfigurasi email dan FTP server pada
domain http://yadiacho.com telah dijelaskan sebelumnya dan
menggunakan data dan informasi pada sub bab 4.4.2. Sebagai
konfigurasi Hafiz eFTP Client.
Berikut ini tampilan awal dari aplikasi yang diuji dan
90
dijelaskan dengan gambar 4.17:
Gambar 4.17. Tampilan Awal Loading Authentication
Pada Gambar 4.17. merupakan eksekusi awal aplikasi pertama
kali dijalankan. Untuk proses loading authentication terjadi pada saat
ini jika berhasil akan menuju pada main window pada gambar 4.18 :
Gambar 4.18. Tampilan Main Window Hafiz eFTP Client
Jika terjadi kesalahan saat autentikasi dilakukan. Aplikasi Hafiz
eFTP client akan menampilkan pesan kesalahan sebagai berikut :
91
Gambar 4.19. Tampilan Jika terjadi kegagalan koneksi
Pada Gambar 4.19 terjadi kegagalan koneksi pada pengujian
aplikasi ini berjalan dengan baik sesuai dengan source code yang
telah ditulis dengan kondisi pengecualian. Dapat dilihat pada script
dibawah ini :
try {// Connect to hoststore = session.getStore(MailConstant.POP_MAIL);store.connect(MailConstant.MAIL_SERVER_INCOMING, -1, MailConstant.MAIL_SERVER_USER,
MailConstant.MAIL_SERVER_PASSWORD);} catch (Exception ex) {
JoptionPane.showMessageDialog(null,"Hafiz eFTP Client Error!!\n Connetcion problem: Check mail.properties for \n'MAIL_SERVER_HOST', 'MAIL_SERVER_USER',\n'MAIL_SERVER_PASSWORD',
'POP_MAIL' and 'SMTP_MAIL' are correct","Failed to Connect", JOptionPane.ERROR_MESSAGE);
runtime.exec("notepad hafizeftp.properties");System.exit(-1);
}
Pada aplikasi jika panel Failed To Connect pada tombol OK di
klik akan mengembalikan user ke halaman konfigurasi pada
hafizeftp.properties dan sistem akan berhenti bekerja.
runtime.exec("notepad hafizeftp.properties");System.exit(-1);
92
Script diatas melakukan pemanggilan editor text seperti tools
notepad untuk melakukan pengambilan data yang ada pada file
hafizeftp.properties dan setelah itu sistem akan berhenti melakukan
eksekusi.
Pada pengujian berikutnya adalah mesin akan melakukan
pembacaan terhadap email yang masuk. Untuk penjelasan dan hasil
pengujian ditunjukan dengan gambar berikut ini :
Gambar 4.20. Tampilan Reading Email
Pada Gambar 4.20. email yang masuk telah berhasil dibaca.
Untuk keterangan source code script membaca sebuah email yang
masuk telah dijelaskan pada script di bawah ini :
public void readMessage(final ProgressDialog pd, final
93
JEditorPane editor,final int msg_id) {SwingUtilities.invokeLater(new Runnable() {public void run() {
try {StringBuffer buffer = new StringBuffer("");
if (messages[msg_id] != null&& !messages[msg_id].getContentType().equals(
"text/html")&& !messages[msg_id].isSet(Flags.Flag.SEEN)) {buffer.append("From: " + messages[msg_id].getFrom()[0]+ "\n");Address[] add = messages[msg_id]
.getRecipients(RecipientType.TO);buffer.append("Sent To: ");for (int j = 0; j < add.length; j++) {
buffer.append(add[j].toString() + ", ");}
buffer.append("\n");Address[] add2 = messages[msg_id]
.getRecipients(RecipientType.CC);buffer.append("CC To: ");if (add2 != null) {for (int j = 0; j < add2.length; j++) {buffer.append(add2[j].toString() + ", ");
}}
buffer.append("\n");buffer.append("Subject: "
+ messages[msg_id].getSubject() + "\n");
boolean contentFlag = doAcho(messages[msg_id]);buffer.append("Sent Date :"
+ messages[msg_id].getSentDate() + "\n");buffer.append("\n");buffer.append("\n");buffer.append("\n");
System.out.println("3333333333333333333333"); System.out.println(messages[msg_id].getContent());System.out.println("444444444444444444444444444");if (!contentFlag) {
BufferedReader is = new BufferedReader( new InputStreamReader(messages[msg_id].getInputStream()));
String line = "";boolean flag = false;int counter = 0;
while ((line = is.readLine()) != null) {if (line.startsWith("Content-Transfer-")) {
flag = true;counter++;
}if (flag == true&& line.indexOf("_NextPart_") > 0) {
flag = false;counter++;
94
}if (counter == 1&& !line.startsWith("Content-Transfer-")) {line = line.replaceAll("=0D=0A", "\n");line = line.replaceAll("=0A", " ");buffer.append(line + "\n");
}}
editor.setContentType("text/plain");} else {
buffer.append("" + messages[msg_id].getContent());}
} else if (messages[msg_id] != null&& messages[msg_id].getContentType().equals(
"text/html")) {
buffer.append("" + messages[msg_id].getContent());editor.setContentType("text/html");
}editor.setText(buffer.toString());
pd.dispose();} catch (Exception e) {
pd.dispose();int substr = e.getMessage().length() > 20 ? 20 : e.getMessage().length(); JOptionPane.showMessageDialog(null, "IO exception:"+ e.getMessage().substring(0, substr),
"Unable to read message this time",JOptionPane.ERROR_MESSAGE);}
}});
} Pada script diatas pesan akan dibaca dengan mengambil ID
informasi dari email tersebut menggunakan variabel buffer
StringBuffer buffer = new StringBuffer("");
Informasi lain untuk memperjelas keterangan email yang
masuk dengan membaca pengirim, tujuan, CC dan subject dari email
tersebut.
buffer.append("From: " + messages[msg_id].getFrom()[0]+ "\n");buffer.append("Sent To: ");buffer.append("CC To: ");
buffer.append("Subject: "+ messages[msg_id].getSubject() + "\n");
Untuk type dari email itu sendiri menggunakan type text/html
95
untuk editor dapat membaca email tersebut pada script dijelaskan
dengan script dibawah ini :
editor.setContentType("text/html");
Pengujian selanjutnya system akan mengirimkan sebuah email
yang akan ditulis oleh user dengan tampilan field pada gambar 4.21 :
Gambar 4.21. Tampilan Sending Email
Pada Gambar 4.21. System akan megirimkan email berikut
dengan penyediaan field – field yang dibutuhkan dan juga menu
untuk mengirim email dengan attachment file. Untuk keterangan
source code penulis telah menjelaskannya pada sub bab 4.2.1
perancangan proses pada kategori sequence diagram.
Pengujian penggunaan FTP Client yang ada pada aplikasi Hafiz
eFTP Client. Langkah awal user melakukan pemilihan menu utama
96
Ftp → Ftp Client dengan tooltips Transfer File to Domain. Dengan
source code sebagai berikut :
menuFtp.setText("Ftp");
menuFtpOk.setText("Ftp Client"); menuFtpOk.setToolTipText("Transfer File to Domain"); menuFtpOk.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {ftp_ActionPerformed (ae);
}});Pengujian action listener pada menu ini terletak pada method
ftp_ActionPerformed (ae); penulis menyisipkan method ini
kedalam main class Hafiz eFTP Client. Method tersebut berhasil
pengujiannya sehingga menampilkan jendela berikut ini :
Gambar 4.22. Tampilan FTP Client Window
97
Pada Gambar 4.22. merupakan jendela baru dari tampilan FTP
Client window. User akan meng-klik tombol Connect untuk dapat
terkoneksi dengan server untuk melakukan pengoperasian FTP
Client. Pada jendela aplikasi FTP Client juga disediakan informasi
untuk melakukan koneksi. Jika terjadi kegagalan melakukan koneksi
ke FTP server maka sistem akan mengirimkan informasi log dengan
eksekusi pada script dibawah ini :
synchronized boolean connect(String server, int port) {boolean done = false;if (control == null) {
try { /* Get host name */context.printlog("Getting host by name: " + server);InetAddress addr = InetAddress.getByName(server);
/* Connect to host */context.printlog( "Connecting to host: "
+ addr.getHostAddress());control = new Socket(addr, port);control.setSoTimeout(60000);
/* Open input / output streams */in =new BufferedReader(new InputStreamReader(control.getInputStream()));out = new BufferedWriter(new OutputStreamWriter(control.getOutputStream()));this.server = server;done = true;
} catch (UnknownHostException e) { context.printlog("< Ctrl: Can't resolve host address! >");
} catch (IOException e) {disconnect();
context.printlog("< Ctrl: Can't obtain connection to host! >");} catch (Exception e) {
context.printlog("< Ctrl: Permission denied! >");}
}return done;
} Pada script diatas jika telah terjadi koneksi dengan server maka
aplikasi FTP Client dapat dioperasikan dengan eksekusi akhir done
98
= true; dan jika koneksi gagal akan sistem akan melakukan
pengecualian pada script dibawah ini :
catch (UnknownHostException e) { context.printlog("< Ctrl: Can't resolve host address! >");
} catch (IOException e) {disconnect();
context.printlog("< Ctrl: Can't obtain connection to host! >");} catch (Exception e) {
context.printlog("< Ctrl: Permission denied! >");}
Pada pengujian selanjutnya jika telah tejadi koneksi maka
jendela Tab main window akan mengarah pada menu Tab List dan
user akan melihat file – file yang berada di local directory dan juga
server directory dalam bentuk list. Untuk pengujian ini dapat dilihat
pada gambar berikut ini :
Gambar 4.23. Tampilan menu Tab List
99
Pada Gambar 4.23. menunjukan daftar list local directory dan
server directory. User melakukan selected file atau directory jika
ingin melakukan perintah Copy, Delete, Rename dan New Dir untuk
pengoperasian FTP Client.
Pada gambar yang ditunujukan dengan garis merah merupakan
directory list yang berada pada server FTP pada domain
ftp.yadiacho.com dan berada pada initial folder root. Untuk file – file
yang akan ditampilkan atau dibaca pada web browser terdapat pada
directory public_html. Terlihat pada gambar 4.20. public_html
dengan selected item berwarna biru.
Log information pada aplikasi ini akan tertulis pada menu Tab
Log yang akan diuji dan jelaskan pada gambar 4.24 :
Gambar 4.24. Tampilan menu Tab List
100
Pada Gambar 4.24. merupakan Log Information yang terjadi
disaat pengoperasian FTP Client. Seluruh informasi yang terjadi akan
tertulis pada menu Tab Log ini. Log – Log jika terjadi kesalahan
juga tertulis hingga user melakukan perintah Disconnect pada
aplikasi FTP Client ini.
4.4.3. Sharing Ilmu Pengetahuan di http://sourceforge.com
Penulis mencoba mengembangkan aplikasi ini untuk masa
yang akan datang agar aplikasi ini lebih sempurna. Untuk itu penulis
mengembangkannya melalui situs para developer software yang
berlisensi opensource di http://sourceforge.com . Penulis juga telah
mendaftarkan Hafiz eFTP Client dengan Url :
http://hafizeftpclient.sourceforge.net/. Untuk melakukan sub version
(SVN) atau pengembangan aplikasi terletak pada code ini : svn co https://hafizeftpclient.svn.sourceforge.net/svnroot/haf
izeftpclient hafizeftpclient.
Kegiatan di mana pengetahuan, informasi yaitu, keterampilan,
atau keahlian dipertukarkan antara orang-orang, teman, atau anggota
keluarga, masyarakat misalnya Wikipedia atau sebuah organisasi
developer software. Organisasi maupun masyarakat umum telah
mengakui bahwa pengetahuan merupakan aset tidak berwujud yang
berharga untuk menciptakan dan mempertahankan keunggulan
kompetitif.
101
4.4.4. Tanggapan User terhadap aplikasi Hafiz eFTP Client
Penulis juga melakukan suatu pengujian berupa User
Acceptance Test (UAT) secara online untuk mengetahui sejauh mana
aplikasi ini mencukupi kebutuhan dari user. Url untuk survey ini
http://survey.yadiacho.com/survey.php?sid=062407. Pada tahap ini
penulis meminta tanggapan user tentang aplikasi Hafiz eFTP Client
sebagai bahan evaluasi. Kuesioner yang diberikan bersifat tertutup
dan dianalisa dengan tabel frekuensi distribusi. Berikut ini adalah
hasil persentase dari kuesioner yang telah dibagikan pada 20 orang
penguji. Tabel berikut menunjukan hasil dari kuesioner :
Tabel 4.22. Hasil Persentase Angket Tanggapan User
No. Pertanyaan Jawaban JumlahPersentase
(%)1 Dilihat dari konfigurasi dari Hafiz
eFTP Client. Menurut anda, bagaimana tingkat kemudahan penggunaan aplikasi ini?
a) Mudah b) Sulitc) Biasa Saja
• 90• 00• 10
2 Untuk tampilan halaman Grafic User Interface (GUI) Hafiz eFTP Client. Bagaimana menurt anda?
a) Baik b) Cukupc) Biasa Saja
• 80• 10• 10
3 Apakah aplikasi ini sudah cukup memenuhi kebutuhan anda akan sebagai aplikasi Email Client dan FTP Client untuk domain web?
a) Sangat Cukupb) Cukupc) Sedangd) Biasa sajae) Kurang Cukup
• 10• 70• 10• 10• 00
4 Dari fitur Hafiz eFTP Client, fitur apa yang paling anda sukai?
a) Configurationb) Compose emailc) attachment filed) Receiving email
• 30• 10• 05• 05
102
e) Transfer Filef) Downloading
• 30• 20
5 Apakah sering terjadi gangguan (bug) pada aplikasi ini?
a) Seringb) Terkadangc) Tidak adad) Tidak tahu
• 20• 30• 10• 40
6 Apakah menurut anda fungsi – fungsi yang ada pada Hafiz eFTP Client telah berjalan dengan baik?
a) Yab) Biasa sajac) Tidak tahu
• 90• 00• 10
7 Secara keseluruhan, bagaimana pendapat anda aplikasi Hafiz eFTP Client ini?
a) Sangat Baikb) Baikc) Cukupd) Kurang Cukupe) Biasa Saja
• 10• 70• 10• 05• 05
8 Untuk pengembangan sistem Hafiz eFTP Client pada situs Software development di situs http://sourceforge.net, Bagaimana menurut anda langkah ini?
a) Sangat Baikb) Baikc) Cukupd) Kurang Cukupe) Biasa Saja
• 90• 10• 00• 00• 00
9 Untuk pengembangan aplikasi Hafiz eFTP Client berikutnya fitur apa saja yang harus terdapat pada aplikasi ini?
a) Filtering Ruleb) Antivirus
Securityc) Office Integrationd) Searchinge) Encryptionf) Compressiong) Extraction
• 30• 10
• 05• 05• 30• 10• 10
Hasil kuesioner diatas menunjukan semua responden
menyatakan bahwa aplikasi Hafiz eFTP Client merupakan aplikasi
yang cukup baik untuk digunakan dan sangat baik untuk
pengembangannya. Aplikasi ini sangat berguna untuk kepentingan
pengurusan sebuah domain web maupun untuk dunia pengetahuan
diseluruh dunia karena aplikasi ini bersifat open source.
BAB V
KESIMPULAN DAN SARAN
Pada bab ini berisi kesimpulan penelitian beserta saran untuk
pengembangan penelitian lebih lanjut.
5.1. Kesimpulan
Berdasarkan uraian penelitian yang telah dilakukan tentang Aplikasi
Menggabungkan Email Client dan File Transfer Protocol (FTP) Client
pada Domain Web, maka dapat diambil kesimpulan sebagai berikut :
1. Aplikasi Hafiz eFTP Client dapat dioperasikan dengan mudah oleh
pengguna yang tidak lagi kesulitan dalam melakukan konfigurasi pada
aplikasi tersebut. Aplikasi Hafiz eFTP Client dapat dimengerti pengguna
sesuai dengan penggunaannya pada domain web. Berdasarkan hasil
kuesioner tanggapan penggguna pada tabel 4.22. yang menyatakan
tingkat kemudahan penggunaan aplikasi ini mencapai 90% dari 20 orang
penguji aplikasi.
2. Penggabungan 2 aplikasi berbeda yaitu email client dan FTP client
sistem aplikasi ini telah beroperasi dengan baik sesuai dengan fungsi dan
kegunaannya. Aplikasi ini menyatu karena pada file konfigurasi
hafizeftp.properties konfigurasi ditulis pada file tersebut. Pada tabel 4.22.
yang menyatakan aplikasi ini cukup untuk memenuhi kebutuhan sebagai
103
104
aplikasi Email Client dan FTP Client untuk domain web mencapai 70%.
5.2. Saran
Berdasarkan penelitian yang diperoleh, ada beberapa saran untuk
pengembangan sistem lebih lanjut.
1. Pengembangan aplikasi ini membutuhkan waktu yang cukup lama untuk
menuju kesempurnaan pada sistem aplikasi Hafiz eFTP Client untuk itu
penulis harus terus melakukan update untuk aplikasi ini.
2. Fitur – fitur yang belum dimiliki oleh aplikasi ini Filtering Rule,
Antivirus Security, Office Integration, Searching, Encryption,
Compression, dan Extraction harus segera diwujudkan untuk update
berikutnya.
3. Dibutuhkannya sebuah komunitas untuk sebuah pengembangan aplikasi
opensource agar aplikasi ini dapat berkembang dengan cepat karena
aplikasi ini telah dipublikasikan ke seluruh dunia melalui situs developer
software opensource http://sourceforge.net.
4. Dalam pengurusan domain web banyak fitur hosting domain yang telah
disebutkan pada tabel 4.21. belum terdapat aplikasi client yang
mengurusi fitur tersebut. Untuk itu untuk realease Hafiz eFTP Client
berikutnya mampu melakukan hal tersebut seperti pengurusan database.
DAFTAR PUSTAKA
Albitz, Paul and Liu, Cricket, BIND 9 Administrator Reference Manual. Internet
Software Consortium, 1998.
Barclay, A Kenneth and Savage, W John. Object-oriented design with UML and
Java. Elsevier Butterworth-Heinemann. 2004.
Dharwiyanti, Sri, Pengantar Unified Modelling Language (UML), Ilmu
Komputer, 2003.
Fish, Timothy. The Problem of Maintaining Websites. Fort Worth, Texas 1996-
2008. http://www.cyberindian.com/web-maintenance/the-problem-of-
maintaining-website.php. Tanggal akses 08 Agustus 2010 pada pukul 05.25
WIB.
Hariyanto, Bambang. Rekayasa Sistem Berorientasi Objek. Bandung :
Informatika. 2004.
Harold, Rusty Elliotte, Java Network Programming : Second Edition, O'Reilly &
Associates, Inc.101 Morris Street Sebastopol, 2006.
Kendall dan Kendall. Analisis dan Perancangan Sistem. Jilid 1. Jakarta : PT.
Prenhallindo.2003.
Mulyanto, Agus. Sistem Informasi Konsep dan Aplikasi. Yogyakarta, Celeban
Timur UH III/548 : Pustaka Pelajar. 2009.
NN,. JavaMail™ Guide for Service Providers. Sun Microsystem, Inc : San
105
106
Antonio Road.1998.
NN,. JavaMail™ API Design Specification Version 1.4. Sun Microsystem, Inc :
San Antonio Road. 2005
NN,. JvFTP Tutorial I. http://sourceforge.net/projects/jvftp. Tanggal akses 5
Februari 2010 pada pukul 15.24 WIB.
NN,. JavaMail™ Tutorial (http://java.sun.com/docs/books/tutorial (Last
Updated 9/23/2009)). Sun Microsystem, Inc : http://java.sun.com/docs/
books/tutorial. Tanggal akses 12 November 2009 pada pukul 03.24 WIB.
Pressman, Roger.S, Rekayasa Perangkat Lunak, McGrawHill Book Co, Buku I.
Yogyakarta : ANDI Yogyakarta, 2002.
Rafiudin, Rahmat, Membangun Server FTP. Yogyakarta Jl. Beo 38-40 :ANDI
Yogyakarta, 2005.
Syafrizal, Melwin. Pengantar Jaringan Komputer. Amikom Yogyakarta : ANDI
Yogyakarta,2005.
Yuhefizar, 10 Jam Menguasai Internet : Teknologi dan Aplikasinya. Elex Media
Computindo. Palmerah-Jakarta., 2008
Zukowski, John. Fundamentals of the JavaMail API. IBM dba Jguru : Magelang
Institute.1996-2000.
APLIKASI MENGGABUNGKAN EMAIL CLIENT DAN FILE TRANFER
PROTOCOL (FTP) CLIENT PADA DOMAIN WEB
Nurcahyadi
UIN Syarif Hidayatullah Jakarta
Jl. Ir. H. Juanda No.95 Ciputat 15412
ABSTRAK
Akhir – akhir ini banyak peneliti yang berpikir bahwa untuk pembuatan sebuah domain web yang terpikir hanyalah pada isi dari web tersebut agar domain web tersebut bagus. Sedangkan untuk pengelolaan data email dan data yang akan dikirim ke domain web tersebut tidak menjadi perhatian. Pada penelitian ini bermaksud untuk bagaimana pengelola domain web atau system administrator dapat memperhatikan hal tersebut.
Kesulitan dalam pengaturan konfigurasi ke server domain web pada aplikasi berbasis web sering terjadi. Dalam penelitian ini penulis menggabungkan kedua fitur tersebut menjadi satu yang dapat memudahkan perusahaan maupun pengguna untuk mengatur email dan transfer file ke domain web.
Kata Kunci : Hafiz eFTP Client, Email Client, File Tranfer Protocol (FTP) , Domain Web, DNS
1. PendahuluanKesulitan dalam pengaturan konfigurasi
ke server domain web pada aplikasi – aplikasi ini sering terjadi. Dalam penelitian ini penulis menggabungkan kedua fitur tersebut menjadi satu yang dapat memudahkan perusahaan maupun pengguna untuk mengatur email dan transfer file ke domain web.
Penggabungan dua aplikasi ini dimaksudkan untuk mempermudah pengguna yang memiliki sebuah alamat domain web, karena aplikasi dapat berjalan secara bersamaan. Pengguna tidak perlu repot lagi mengatur konfigurasi yang ada pada sebuah domain web.
1.1. Teori EmailBeberapa Definisi Email :
1. Electronic mail (email) is the term given to an electronic message, usually a form of simple text message, that a user types at a computer system and is transmitted over some form of computer network to another user, who can read it.
2. Surat Elektronik atau E-mail merupakan singkatan dari elektronic mail yaitu suatu metode untuk mengirimkan pesan (surat), menyimpannya (storing), dan meneruskannya (forward) ke alamat email lain melalui media elektronik (internet/intranet).
1
Dengan email pengguna bisa mengirim atau menerima email dari dan ke pengguna internet ke seluruh dunia, dan setiap pesan yang dikirim dan diterima akan selalu tersimpan pada mailbox.
Mail Transfer Agent (MTA)
MTA merupakan suatu program yang bertanggung jawab dalam hal pengiriman sebuah email ke alamat tujuan. Program ini umumnya akan menjadi sebuah daemon, yaitu service yang berjalan terus menerus selama komputer dihidupkan dan membuka koneksi pada port 25 (port default SMTP) yang digunakan sebagai penghubung antar MTA (Prasetyo, 2004:32).Contoh aplikasi MTA yaitu Sendmail, Postfix, qmail, exim.
Mail Delivery Agent (MDA)
Fungsi MDA yang utama untuk mengirimkan email pada tujuan yang ada dalam local system. Untuk itu MDA harus mengetahui type dan lokasi data mailbox untuk masing-masing user. Selain itu terdapat fungsi-fungsi tambahan pada MDA yaitu : automatic mail filtering, automatic mail replying dan automatic program initialization.
Mail User Agent (MUA)
Mail User Agent (MUA) merupakan sinonim dari aplikasi email client. Sebuah MUA adalah sebuah program yang memungkinkan user membaca dan membuat pesan-pesan email.
Pada Penelitian ini penulis menggunakan MUA untuk menerapkan aplikasi Email Client yang penulis realisasikan.
1.2. Teori FTPFile Transfer Protocol (FTP) adalah suatu
protokol yang berfungsi untuk tukar-menukar file dalam suatu network yang menggunakan TCP koneksi bukan UDP. Dua hal yang penting dalam
FTP adalah FTP Server dan FTP Client. (Priyanto, 2010)
Protokol FTP mengizinkan transaksi file dua arah, dimana file dapat dikirim ke atau dari sebuah server. Transaksi – transaksi ini meliputi local filesystem (dalam sisi klien) dan remote filesystem (dalam sisi server). Saat server menerima request FTP, server membuka sebuah port (normalnya port 21) untuk koneksi yang masuk dan mengauthentikasi klien – klien berdasarkan account.
Berikut ini FTP terbagi menjadi dua bagian yaitu:1. FTP Server, suatu server yang menjalankan
software yang berfungsi untuk memberikan layanan tukar menukar file dimana server tersebut selalu siap memberikan layanan FTP apabila mendapat permintaan (request) dari FTP client.
2. FTP client, komputer yang melakukan request koneksi ke FTP server untuk tujuan tukar menukar file. Setelah terhubung dengan FTP server, maka client dapat men-download, meng-upload, me-rename, men-delete, dan lain lain sesuai dengan permission yang diberikan oleh FTP server.
Tabel 1.1. Perintah Standar FTP
Command-line Description Syntax
ABOR (ABORT) Membatalkan suatu layanan dan semua file yang sedang ditransfer.
ABORT
ACCT (ACCOUNT) Menjelaskan dari informasi pengguna client FTP.
ACCT<space><username>
ALLO (ALLOCATE)
Mengalokasikan berapa banyak data yang akan ditransfer dari FTP server ke FTP client.
ALLO <space> <decimal-integer>
ALLO <space> R <decimal-integer>
CDUP (CHANGE TO PARENT DIRECTORY)
Kembali ke directory awal.
CDUP
CWD (CHANGE TO PARENT DIRECTORY)
Berpindah ke direktori lain.
CWD <space> <pathname>
DELE (DELETE) Menghapus file atau DELE <space><pathname>
2
seluruh isi direktori.
HELP (HELP) Menampilkan perintah yang didukung oleh FTP client.
HELP
HELP<space><string>
LIST (LIST) Menampilkan nama dan detil file yang dikirim dari FTP server.
LIST
LIST<space><pathname>
MDTM (MODIFICATION TIME)
Perintah yang dapat menentukan kapan file terakhir kali diubah.
MDTM <space><pathname>
MKD (MAKE DIRECTORY)
Membuat direktori. MKD <space> <pathname>
MODE (TRANSFER MODE)
Mengubah/menentukan cara transfer file.
MODE<space><mode-code>
NOOP (NOOP) Merupakan perintah untuk mengirimkan sinyal “OK” kepada server.
NOOP
PASS (PASSWORD)
Mengirimkan password kepada FTP server, perintah ini harus didahulukan dengan “USER”
PASS<space><password>
PASV (PASSIVE)
Mengirimkan permintaan transfer data ke port.
PASV
PORT (DATA PORT)
Mencari data port alternatif.
PORT<space><host-port>
PWD (PRINT WORKING DIRECTORY)
Menampilkan dimana direktori saat ini.
PWD
QUIT (LOGOUT) Keluar dari layanan FTP.
QUIT
REST (RESTART)
Mengulang transfer suatu file.
REST <space> <marker>
RMD (REMOVE DIRECTORY)
Menghapus directory. RMD <space> <pathname>
RNFR (RENAME FROM)
Nama awal dari file/direktori yang akan diubah, perintah ini diikuti dengan perintah “RNTO”.
RNFR<space><pathname>
RNTO (RENAME TO)
Perintah lanjutan dari “RNTO”, yang merupakan, nama baru untuk file/direktori.
RNTO <space> <pathname>
SIZE (SIZE OF FILE)
Menentukan berapa banyak ukuran file yang akan ditransfer per-octetnya.
SIZE<space><pathname>
SMNT (STRUCTURE MOUT)
Perintah yang memungkinkan user untuk mount file sistem
SMNT<space><pathname>
tanpa mengubah informasi user.
STAT (Status) Menampilkan hak kepemilikkan setiap file.
STAT<space><pathname>
STRU (FILE STRUCTURE)
Menentukan tampilan struktur file pada FTP client.
F – File;
R – Record Structure;
P – Page Structure
STRU <space> <structure-coe>
SYST (SYSTEM) Menampilkan sistem operasi yang dipakai oleh server.
SYST
USER (USER NAME)
Mengirim nama pengguna ke server.
USER<space><username>
1.3. Teori DNSBerikut ini beberapa pengertian DNS :
1. “The Domain Name System (DNS) is the hierarchical, distributed database. It stores information for mapping Internet host names to IP addresses and vice versa, mail routing information, and other data used by Internet applications.” (Albitz and Liu,1998;10)
2. Domain Name System (DNS) adalah Distribute Database System yang digunakan untuk pencarian nama komputer (Name Resolution) di jaringan yang menggukan Transmision Control Protocol / Internet Protocol (TCP/IP). DNS merupakan sebuah aplikasi service yang biasa di gunakan di internet seperti web browser atau email yang menerjemahkan sebuah domain name ke IP address. Misalnya, yahoo.com di petakan ke sebuah IP 68.142.197.64 atau 217.12.3.11. (Syafrizal, 2008; 213).
DNS dapat dianalogikan seperti pemakaian buku telpon dimana orang yang kita kenal berdasarkan nama. Namun untuk menghubunginya kita harus memutar nomor telepon di pesawat telpon dapat diganti dengan namanya saja.
3
2. PembahasanLiteratur Sejenis Aplikasi FTP Client
Nama aplikasi “FTPku”.
Literatur Sejenis Aplikasi Active Directory Email
Nama aplikasi “ZIMBRA”
Untuk perbandingan di buat tabel pada aplikasi yang akan penulis wujudkan yaitu aplikasi Hafiz eFTP Client dengan tabel 4.1.
Tabel 2.1. Perbandingan Aplikasi Hafiz eFTP Client, FTPku
dan ZIMBRA
Hafiz e FTPClient FTPku ZIMBRA
User Interface Desktop GUI Web Based Web Based
Network Internet Localhost PC Intranet
Platform AllAll withBrowser Enable
All withBrowser Enable
Licence Opensource Opensource Shareware
Server Use Email and FTP FTP Email
ProgrammingLanguage
Java SwingFramework
PHP withAJAX
PHP Framework
Development Continue n/a Continue
Dalam pengembangan aplikasi email dan FTP client ini yaitu meliputi hal – hal sebagai berikut :
Domain WebDomain web digunakan sebagai server
utama yang mendukung penamaan pada sebuah server atau DNS. Domain web menjadi penamaan alamat pada email dan FTP Server. Untuk nama domain yang penulis gunakan akan
dibuat pada fase konstruksi sub bab 4.3. Domain web dibuat menggunakan layanan yang diberikan hostgokil.com dengan nama domain yadiacho.com.
Email ServerServer mail sebagai pendukung penggunaan
pengiriman dan penerimaan email. Email server yang ada mengikuti dukungan yang diberikan dari hosgokil.com
FTP ServerServer FTP yang menggunakan protokol
transfer file melalui port 21 yang dapat mengurangi traffic pada jaringan internet. FTP server untuk sebuah domain web umumnya telah menjadi 1 paket dalam layanan pembelian sebuah domain web.
Bahasa Pemrograman JavaPada pembuatan aplikasi ini menggunakan
bahasa pemrograman java dengan package library pendukung aplikasi ini seperti SWING, JavaMail API 1.4 dan JvFTP.
Proses yang dilakuan Hafiz e-FTP Client
4
Gambar 1.1. Use Case Diagram Hafiz eFTP Client
Konfigurasi System#Hafiz eFTP Client Configuration
#No Need Changes #Leave as it isMAIL_SERVER_INCOMING=mail.yadiacho.comMAIL_SERVER_OUTGOING=mail.yadiacho.com
#Provide your gmail user name and [email protected]_SERVER_PASSWORD=123***
#No Need Changes #Leave as it isOUTGOING_PORT=INCOMING_PORT=
#FTP Server ConfigurationFTP_SERVER=ftp.yadiacho.comFTP_USERNAME=yadiachoFTP_PASSWORD=****01285FTP_INITIAL_FOLDER=FTP_PORT=21
#No Need Changes #Leave as it is [This section for advanced user] MAIL_SERVER_AUTH=trueMAIL_DEBUG=falseMAIL_CONTENT_TYPE=text/html;charset=UTF-8
Tabel 2.2. Hasil Persentase Angket Tanggapan User
No. Pertanyaan Jawaban
JumlahPersentas
e (%)1 Dilihat dari
konfigurasi dari Hafiz eFTP Client. Menurut anda, bagaimana tingkat kemudahan penggunaan aplikasi ini?
a) Mudah b) Sulitc) Biasa Saja
• 90• 00• 10
2 Untuk tampilan halaman Grafic User Interface (GUI) Hafiz eFTP Client. Bagaimana menurt anda?
a) Baik b) Cukupc) Biasa Saja
• 80• 10• 10
3 Apakah aplikasi ini sudah cukup memenuhi kebutuhan
a) Sangat Cukup
b) Cukup
• 10• 70
anda akan sebagai aplikasi Email Client dan FTP Client untuk domain web?
c) Sedangd) Biasa sajae) Kurang
Cukup
• 10• 10• 00
4 Dari fitur Hafiz eFTP Client, fitur apa yang paling anda sukai?
a) Configuration
b) Compose email
c) attachment file
d) Receiving email
e) Transfer File
f) Downloading
• 30• 10• 05• 05• 30• 20
5 Apakah sering terjadi gangguan (bug) pada aplikasi ini?
a) Seringb) Terkadangc) Tidak adad) Tidak tahu
• 20• 30• 10• 40
6 Apakah menurut anda fungsi – fungsi yang ada pada Hafiz eFTP Client telah berjalan dengan baik?
a) Yab) Biasa sajac) Tidak tahu
• 90• 00• 10
7 Secara keseluruhan, bagaimana pendapat anda aplikasi Hafiz eFTP Client ini?
a) Sangat Baikb) Baikc) Cukupd) Kurang
Cukupe) Biasa Saja
• 10• 70• 10• 05• 05
8 Untuk pengembangan sistem Hafiz eFTP Client pada situs Software development di situs http://sourceforge.net, Bagaimana menurut anda langkah ini?
a) Sangat Baik
b) Baikc) Cukupd) Kurang
Cukupe) Biasa Saja
• 90• 10• 00• 00• 00
9 Untuk pengembangan aplikasi Hafiz eFTP Client berikutnya fitur apa saja yang harus terdapat pada aplikasi ini?
a) Filtering Rule
b) Antivirus Security
c) Office Integration
d) Searchinge) Encryptionf) Compressio
ng) Extraction
• 30• 10
• 05• 05• 30• 10• 10
5
Hasil kuesioner diatas menunjukan semua responden menyatakan bahwa aplikasi Hafiz eFTP Client merupakan aplikasi yang cukup baik untuk digunakan dan sangat baik untuk pengembangannya. Aplikasi ini sangat berguna untuk kepentingan pengurusan sebuah domain web maupun untuk dunia pengetahuan diseluruh dunia karena aplikasi ini bersifat open source.
3. PenutupBerdasarkan hasil kuesioner tanggapan
penggguna pada tabel 1.2. yang menyatakan tingkat kemudahan penggunaan aplikasi ini mencapai 90% dari 20 orang penguji aplikasi.
Aplikasi ini menyatu karena pada file konfigurasi hafizeftp.properties konfigurasi ditulis pada file tersebut. Pada tabel 1.2. yang menyatakan aplikasi ini cukup untuk memenuhi kebutuhan sebagai aplikasi Email Client dan FTP Client untuk domain web mencapai 70%.Daftar Pustaka[1] Pressman, Roger.S, Rekayasa Perangkat
Lunak, McGrawHill Book Co, Buku I. Yogyakarta : ANDI Yogyakarta, 2002.
[2] Rafiudin, Rahmat, Membangun Server FTP. Yogyakarta Jl. Beo 38-40 :ANDI Yogyakarta, 2005.
[3] Syafrizal, Melwin. Pengantar Jaringan Komputer. Amikom Yogyakarta : ANDI Yogyakarta,2005.
[4] Mulyanto, Agus. Sistem Informasi Konsep
dan Aplikasi. Yogyakarta, Celeban Timur UH III/548 : Pustaka Pelajar. 2009.
6