FAKULTAS SAINS DAN TEKNOLOGI

146
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 TEKNOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA 2010

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.

Lampiran I

Tampilan Web Domain

http://yadiacho.com

I-1

Tampilan Web Bagian Atas

I-2

Tampilan Web Bagian Bawah

I-3

Tampilan Web Komentar Pengunjung

I-4

Lampiran II

Tampilan Survey Online

II-1

1. Tampilan Quesioner Analisa Kebutuhan

II-2

Hasil Quesioner Survey Online :

II-3

II-4

2. Tampilam Quesioner Tanggapan User

II-5

Hasil Quesioner Tanggapan User Online

II-6

II-7

II-8

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

[email protected]

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