Analisis Layanan File Transfer Protocol pada Perbandingan ...
APLIKASI FILE TRANSFER PROTOCOL CLIENT BERBASIS WEB DENGAN FUNGSI...
Transcript of APLIKASI FILE TRANSFER PROTOCOL CLIENT BERBASIS WEB DENGAN FUNGSI...
-
1
APLIKASI FILE TRANSFER PROTOCOL CLIENT BERBASIS
WEB DENGAN FUNGSI SINKRONISASI
MENGGUNAKAN PHP
SKRIPSI
Ditujukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
Disusun Oleh:
Adhi Khrisna Indra Prasetya
NIM: 015314081
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2007
-
2
WEB BASED FILE TRANSFER PROTOCOL CLIENT WITH
SYNCHRONIZATION FUNCTION
USING PHP
SKRIPSI
Presented as Part of the Requirements
To Obtain the Sarjana Teknik Degree
In Departement of Informatics Technology
Created By:
Adhi Khrisna Indra Prasetya
NIM: 015314081
DEPARTEMENT OF INFORMATICS TECHNOLOGY
FACULTY OF SCIENCE AND TECHNOGOLY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2007
-
ii
HALAMAN PERSETUJUAN
SKRIPSI
APLIKASI WEB-BASED FILE TRANSFER PROTOCOL
DENGAN FUNGSI SINKRONISASI MENGGUNAKAN PHP
-
iii
SKRIPSI
APLIKASI FILE TRANSFER PROTOCOL CLIENT
BERBASIS WEB DENGAN FUNGSI SINKRONISASI
MENGGUNAKAN PHP
-
iv
PERNYATAAN KEASLIAN KARYA
Dengan ini saya sebagai penulis tugas akhir menyatakan dengan
sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya
orang lain, kecuali pemikiran, metode atau hasil penelitian orang lain yang diambil
disebutkan dengan jelas sebagai acuan.
Yogyakarta, 28 September 2007
Adhi Khrisna Indra Prasetya
Penulis
-
v
KKuuppeerrsseemmbbaahhkkaann uunnttuukk…… BBaappaakk ddaann IIbbuukkuu
KKaakkaakkkkuu OOpphhii ddaann IInnddrrii SSeerrttaa VViivviiee
-
vi
Hargailah usia, namun lebihHargailah usia, namun lebihHargailah usia, namun lebihHargailah usia, namun lebih----lebihlebihlebihlebih
harharharhargailah pengalaman. Sebab, bukan usia gailah pengalaman. Sebab, bukan usia gailah pengalaman. Sebab, bukan usia gailah pengalaman. Sebab, bukan usia
yang membuat seseorang bijaksana. yang membuat seseorang bijaksana. yang membuat seseorang bijaksana. yang membuat seseorang bijaksana.
Usia hanya berarti jika orang belum mati.Usia hanya berarti jika orang belum mati.Usia hanya berarti jika orang belum mati.Usia hanya berarti jika orang belum mati.
Pengalaman, dan keterbukaan untuk belajarPengalaman, dan keterbukaan untuk belajarPengalaman, dan keterbukaan untuk belajarPengalaman, dan keterbukaan untuk belajar
dari pengalaman membuat orang mampudari pengalaman membuat orang mampudari pengalaman membuat orang mampudari pengalaman membuat orang mampu
memahami secara benarmemahami secara benarmemahami secara benarmemahami secara benar
-
vii
ABSTRAKSI
Dalam penyusunan website yang baik dibutuhkan beberapa software
pendukung salah satunya adalah File Transfer Protocol atau biasa disebut FTP. FTP
ini dibutuhkan untuk meng-upload sebuah website. File website yang akan di-upload
dapat berjumlah sangat banyak, sehingga dibutuhkan FTP client yang dapat
mempermudah proses tersebut.
Aplikasi File Transfer Protocol Client berbasis web merupakan apllikasi yang
digunakan untuk manajemen file server yang mendukung FTP. Aplikasi ini dapat
melakukan upload, download, rename, delete, create file, serta create dan delete
folder pada direktori server. Aplikasi ini dapat melakukan sinkronisasi direktori lokal
ke direktori server. Proses sinkronisasi ini dilakukan dengan membandingkan file
lokal yang lebih baru dari file server, apabila ditemukan, file tersebut secara otomatis
di-upload ke direktori server.
Sistem ini dapat bekerja pada Linux Suse 10, dan tidak menutup kemungkinan
untuk sistem lain. Sinkronisasi dapat dilakukan secara menyeluruh pada semua
direktori server. Sehingga direktori lokal dan direktori server memiliki file-file yang
sama. Sistem ini dikembangkan dengan menggunakan bahasa pemrograman PHP5
-
viii
ABSTRACT
In order to build good website, several software is needed, for example is File
Transfer Protocol, or used to be called FTP. FTP is needed to uploading a website.
Sometimes website’s files can be too many, so FTP that can handle such process is
needed.
Web based File Transfer Protocol is an application that can be used for
server’s file management that support FTP. This application can do basic FTP
function such as upload, download, rename, delete, create file and also create and
delete folder on server directory. This application can do synchronization from local
directory to server directory. Synchronization process can be done by comparing
newer local file with remote file, if found, that file will be automatically transferred to
server directory
This system can work on Linux SuSe 10. And possibility to other system.
Synchronization can be done through all of server directory. So, local directory and
server directory has the same files. This system is built on PHP5 programming
language
-
ix
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Allah SWT. yang telah
melimpahkan berkat dan rahmat-Nya sehingga penulis dapat menyelesaikan Laporan
Tugas Akhir ini. Penulisan tugas akhir ini ditujukan untuk memenuhi salah satu syarat
memperoleh gelar Sarjana Teknik Jurusan Teknik Informatika.
Terselesaikannya penulisan tugas akhir ini tidak lepas dari peran serta
beberapa pihak, baik secara langsung maupun secara tidak langsung. Oleh karena itu,
penulis ingin menyampaikan terima kasih kepada pihak-pihak yang telah ikut
membantu dalam penulisan tugas akhir ini, baik dalam memberikan bimbingan,
petunjuk, kerjasama, kritikan, maupun saran, antara lain kepada:
1. Bapak JB. Budi Darmawan, S.T., M.Sc., selaku Dosen Pembimbing I, yang telah
banyak membantu terutama dalam memberikan bimbingan, dukungan, dan
penyediaan sarana yang mendukung, sehingga penulis dapat menyelesaikan
laporan tugas akhir ini.
2. Ibu Agnes Maria Polina, S.Kom., M.Sc., selaku Ketua Jurusan Teknik
Informatika Universitas Sanata Dharma.
3. Ibu Merry, S.T., Bapak DS. Bambang Soelistijanto, S.T., MSc. dan Ibu PH. Prima
Rosa, S.Si., M.Sc, selaku panitia penguji pada ujian pendadaran penulis.
4. Pak Bele, Mas Danang, Agus, dan seluruh Laboran, yang telah memberikan
bantuannya terutama pada saat pendadaran.
-
x
5. Kedua orang tua penulis, serta kakak penulis, yang selalu mendoakan,
memberikan semangat dan dorongan kepada penulis untuk dapat menyelesaikan
penulisan laporan tugas akhir ini.
6. Vivie, pacar penulis yang telah membantu menyemangati dan menjauhkan
serangan selimut kucel
7. Teman-teman Teknik Informatika, Ony, Anan, Adri, Robin, Nita, Christin,
Wawan ang meminjamkan Skripsinya, Sigit, Tria, Narko yang memberi contoh
OOP, Ida, Tiwi, Ema, Danu yang telah menyumbang judul, Tatag serta semuanya
yang telah membantu member penulis semangat.
8. Divisi ISP PT Widya Intersat Nusantara, yang jadwalnya telah terganggu akibat
pengerjaan skripsi ini.
9. Dan seluruh pihak yang telah ikut ambil bagian dalam penyelesaian laporan tugas
akhir ini yang tidak dapat penulis sebutkan satu-persatu.
Seperti kata pepatah, “Tak ada gading yang tak retak”, maka penulis
menyadari segala keterbatasan dalam menyelesaikan laporan tugas akhir ini. Oleh
karena itu, penulis ingin menyampaikan mohon maaf apabila terdapat kesalahan dan
kekurangan.
Yogyakarta, 28 September 2007
Adhi Khrisna Indra Prasetya
( Penulis )
-
xi
DAFTAR ISI
Halaman Judul ........................................................................................ i
Halaman Persetujuan ………………………………………………….. ii
Halaman Pengesahan…………………………………………………… iii
Halaman Pernyataan…………………………………............................ iv
Halaman Persembahan………………………………………………… v
Halaman Motto…………………………………………........................ vi
Abstraksi.................................................................................................. vii
Abstract................................................................................................... viii
Kata Pengantar……………………….................................................... ix
Daftar Isi ……………………………………………………………….. xi
Daftar Gambar ………………………………………………………… xv
BAB I PENDAHULUAN
1.1 Latar Belakang ……..……………………………………… 1
1.2 Rumusan Masalah ..………………………………………… 2
1.3 Tujuan dan Manfaat ………….……………………………. 2
1.4 Batasan Masalah …… ……………………………………… 2
1.5 Metodologi Pengembangan Sistem….……………………… 3
1.6 Sistematika Isi ……..………………………………………. 3
-
xii
BAB II LANDASAN TEORI
2.1 Jaringan Komputer……...……………….…….…………… 5
2.2 Konsep TCP/IP…………………………………………….. 5
2.3 Layer TCP/IP……………………………....………………. 9
2.4 Use Case Diagram …………………………………………. 10
2.5 PHP ………………………………………………………… 13
2.5.1 Kelebihan dan Kekurangan PHP…………………. 15
2.6 Definisi FTP ……………………………………………….. 16
2.7 Konsep FTP ………………………………………………... 17
2.8 Model FTP ………………………………………………… 18
BAB III ANALISA DAN PERANCANGAN SISTEM
3.1 Analisa Sistem ………………..…………….……………… 21
3.1.1 Gambaran Umum Sistem ………………………… 22
3.1.2 Requirement Analisis ……………………………. 22
3.1.2.1 Use Case Diagram ……………………… 22
3.2 Analisis Proses …………………………………………….. 23
3.3 Desain Sistem ……………………………………….……… 25
3.4 Desain Teknologi secara Terperinci……….……………….. 30
-
xiii
BAB IV IMPLEMENTASI SISTEM DAN ANALISA HASIL
4.1 Kebutuhan Sistem ………………..…………….…………… 31
4.2 Class Diagram ………………..………….…….…………… 32
4.3 User Interface ………………..…………….……………….. 33
4.4 Implementasi ….. ………………..…………….…………… 36
4.4.1 Implementasi Aplikasi Login … ………………… 36
4.4.2 Implementasi Aplikasi Utama .…………………. 38
4.4.3 Implementasi Fungsi FTP .................................... . 43
4.4.3.1 Implementasi Fungsi Upload .......……… 43
4.4.3.1 Implementasi Fungsi Download ......…… 43
4.4.3.1 Implementasi Fungsi Rename ..........…… 44
4.4.3.1 Implementasi Fungsi Delete .......……..… 45
4.4.3.1 Implementasi Fungsi Create File .............. 46
4.4.3.1 Implementasi Fungsi Create Folder .....… 47
4.4.3.1 Implementasi Fungsi Sinkronisasi ........… 48
4.5 Analisa Hasil . .……………….....………………………….. 51
4.5.1 Keunggulan Sistem … ….................……………… 52
4.5.2 Kekurangan Sistem .………..................…………. 52
BAB V PENUTUP
5.1 Kesimpulan …………….…. ……..…………….…………… 54
5.2 Saran ……………….………....………….…….……… …… 54
-
xiv
DAFTAR PUSTAKA .………………………………………………… 55
LAMPIRAN …………………………………………………………… 56
-
xv
DAFTAR GAMBAR
Gambar 2.1 Segment TCP ……………………………………………… 7
Gambar 2.2 Model FTP ………………………………………………… 19
Gambar 3.1 Use Case Diagram ………………………………………… 21
Gambar 3.2 Context Diagram …………………………………………… 22
Gambar 3.3 Hierarchy Diagram ………………………………………… 23
Gambar 3.4 Data Flow Diagram ………………………………………… 24
Gambar 3.5 Flowchart Proses Login Server ……………………………. 25
Gambar 3.6 Rancangan Halaman Login .................................................... 28
Gambar 3.7 Rancangan Program Utama ................................................... 29
Gambar 4.1 Tampilan Halaman Login ..................................................... 33
Gambar 4.2 Tampilan Program Utama ………………………………… 34
Gambar 4.3 Tampilan Proses Sinkronisasi ……………………………… 35
Gambar 4.4 Tampilan Pembuatan User Account ……………………… 51
-
1
BAB I
PENDAHULUAN
1.1. Latar Belakang
Internet merupakan bagian yang tidak terpisahkan dari teknologi informasi
sekarang ini. Internet menyajikan berbagai macam informasi yang disusun dalam
sebuah website.
Dalam penyusunan website yang baik dibutuhkan beberapa software
pendukung seperti web designer, web browser, image editor serta ada satu software
yang sering terlupakan, yaitu sebuah File Transfer Protocol atau biasa disebut FTP.
Saat ini telah banyak pengembang software yang membuat sebuah aplikasi FTP, dari
yang sederhana hingga penuh fitur, dari yang gratis hingga yang komersial. Aplikasi
FTP yang dikembangkan ini adalah aplikasi berbasis web.
Seorang webmaster sering mengalami kesulitan saat proses update sebuah
situs. Karena dia harus memilih file satu per satu yang harus di-upload ke sebuah web
hosting server. Pembuatan aplikasi FTP yang berbasis web akan memudahkan
pengguna dalam memanfaatkan aplikasinya. Dengan fasilitas sinkronisasinya,
webmaster akan dimudahkan dalam proses update-nya. Karena secara otomatis
fasilitas ini akan mencari file-file mana saja yang perlu di-upload, hanya dengan satu
langkah saja. Apabila aplikasi FTP web based ini di terapkan pada suatu situs web
hosting server maka akan lebih mengundang pengguna untuk memanfaatkan jasanya,
karena kemudahan tersebut.
-
2
1.2. Rumusan Masalah
Rumusan masalah yang melatar belakangi penulis untuk membuat tugas akhir
ini adalah bagaimana sistem FTP yang berbasis web dapat memudahkan seorang
webmaster dalam mengirimkan dan mengelola website-nya?
1.3. Tujuan dan Manfaat
1. Membuat sebuah sistem yang dapat digunakan untuk memudahkan seorang
webmaster dalam mengirimkan serta meng-update website-nya ke suatu
webhosting, dengan menggunakan teknologi PHP.
2. Untuk memberi nilai tambah kepada suatu web hosting provider yang
mengaplikasikan FTP web-based ini ke dalam website-nya.
1.4. Batasan Sistem
1. Fasilitas FTP hanya membahas upload, download, make directory, rename,
change directory, delete file, delete folder, create file dan folder.
2. Fasilitas synchronizing hanya membandingkan direktori lokal dengan direktori
remote site, dan tidak sebaliknya.
3. Proses sinkronisasi tidak menghapus file yang terdapat di remote direktori
tetapi tidak terdapat di local direktori
4. Pengendalian input dan penanganan masalah keamanan jaringan tidak
dilakukan secara mendetail.
-
3
5. Bersifat cross-platform, dapat digunakan pada komputer berbasis Windows,
Unix serta Macintosh
1.5. Metodologi pengembangan sistem
Metodologi yang digunakan dalam pengembangan sistem ini merupakan metodologi
terstruktur dengan menggunakan literatur dari Jeffry L. Whitten, Lonnie D. Bentley,
Victor M. Barlow (2004):
1. Studi Literatur: Penulis mencari literatur-literatur tentang konsep FTP,
perancangannya serta mencari literatur-literatur mengenai bahasa
pemrograman PHP.
2. Analisa: Menggunakan use case diagram serta flowchart dalam perancangan
sistem.
3. Desain: Melakukan desain input, output dan user interface dari aplikasi yang
dibuat.
4. Implementasi Perancangan: Melakukan pengimplementasian program untuk
menguji program berjalan dengan baik atau terjadi kekurangan.
1.6. Sistematika Isi
Secara garis besar, sistematika penulisan dari Tugas Akhir ini adalah sebagai
berikut:
-
4
BAB I PENDAHULUAN
Bab ini membahas tentang latar belakang penulisan tugas akhir, batasan
masalah, rumusan masalah, tujuan penulisan dan metodologi penelitian tugas
akhir.
BAB II LANDASAN TEORI
Bab ini berisi tentang landasan teori yang digunakan oleh penyusun dalam
membuat dan menyelesaikan Tugas Akhir ini.
BAB III PERANCANGAN SISTEM
Bab ini berisi tentang pembahasan rancangan sistem yang akan dibangun.
BAB IV IMPLEMENTASI PROGRAM
Bab ini membahas tentang implementasi perancangan program kedalam
bahasa perograman.
BAB V ANALISA HASIL
Bab ini berisi jawaban dari rumusan masalah yang telah dinyatakan pada
pendahuluan.
BAB VI KESIMPULAN
Berisi tentang kesimpulan yang dapat diambil dari analisa hasil serta saran-
saran untuk pengembangan program selanjutnya.
-
5
BAB II
LANDASAN TEORI
2.1. Jaringan Komputer
Jaringan komputer adalah sebuah kumpulan komputer, printer dan peralatan
lainnya yang terhubung. Informasi dan data bergerak melalui kabel-kabel sehingga
memungkinkan pengguna jaringan komputer dapat saling bertukar dokumen dan data,
mencetak pada printer yang sama dan bersama sama menggunakan
hardware/software yang terhubung dengan jaringan. Tiap komputer, printer atau
periferal yang terhubung dengan jaringan disebut node. Sebuah jaringan komputer
dapat memiliki dua, puluhan, ribuan atau bahkan jutaan node. Sebuah jaringan
biasanya terdiri dari 2 atau lebih komputer yang saling berhubungan diantara satu
dengan yang lain, dan saling berbagi sumber daya misalnya CDROM, Printer,
pertukaran file, atau memungkinkan untuk saling berkomunikasi secara elektronik.
Komputer yang terhubung tersebut, dimungkinkan berhubungan dengan media kabel,
saluran telepon, gelombang radio, satelit, atau sinar infra merah.
2.2. Konsep TCP/IP
TCP/IP merupakan proyek yang dikembangkan oleh Departement of Defence
(DoD) Defense Advance Research Projects Agency (DARPA) untuk menghubungkan
antar jaringan (network) yang dikembangkan oleh vendor yang berbeda menjadi suatu
jaringan dalam jaringan luas (Network of Networks) atau sekarang terkenal dengan
-
6
nama Internet. Rancangan ini sukses berkembang karena dapat memberikan layanan
dasar yang dibutuhkan oleh orang-orang (file sharing, electronic mail) karena
beberapa komputer dalam suatu departemen kecil dapat menggunakan TCP/IP
(berjalan bersama dengan protokol lainnya) dalam satu jaringan LAN.
Dalam arti yang sederhana, TCP/IP (Transmission Control Protocol/Internet
Protocol) adalah nama keluarga protocol jaringan. Protokol adalah sekelompok
aturan yang harus diikuti oleh perusahaan-perusahaan dan produk-produk software
agar produk mereka itu bias kompatibel satu dengan yang lainnya. Suatu protokol
menentukan bagaimana suatu software berkomunikasi dengan software lain, juga
menentukan bagaimana setiap bagian dari keseluruhan paket mengatur perjalanan
informasinya.
TCP/IP sebenarnya adalah dua macam protokol berbeda. Tidak seperti yang
dianggap oleh kebanyakan orang, istilah TCP/IP mengacu kepada seluruh keluarga
protokol yang dirancang untuk mentransfer informasi sepanjang jaringan. Semua
bagian didalam keluarga TCP/IP memiliki tugas tersendiri, misalnya mengirim e-
mail, mentransfer file dan menangani informasi routing jaringan.
a. IP
IP bertanggung jawab untuk memindahkan paket data dari satu node ke node
lainnya. IP meneruskan paket data berdasarkan empat byte alamat tujuan (IP number /
IP address). Otoritas Internet membagi alamat IP menjadi beberapa organisasi yang
berbeda. Setiap organisasi akan mengkelompokan alamat itu menjadi beberapa
departemen. IP bekerja sebagai pintu gerbang dan alamat mesin dalam memindahkan
-
7
paket data dari satu departemen ke satu organisasi dan diteruskan ke suatu wilayah
regional dan kemudian seluruh dunia.
b. TCP
TCP bertanggung jawab untuk pengecekan pengiriman paket data dari client
ke server. Dalam pengirimannya, data dapat hilang ditengah jalan dalam jaringan.
Oleh karena itu, TCP menambahkan suatu paket tambahan untuk mengecek kesalahan
data atau kehilangan data dan memerintahkan untuk mengirim ulang data sampai data
diterima dalam keadaan benar dan lengkap.
Gambar 2.1 Segment TCP
Source Port (16) Destination Port (16)
Sequence Number (32)
Acknowlegement Number (32)
Window (16) Code bits (5) Reserved (6) Header Length (4)
Checksum (16) Urgent (16)
Options (0 or 32 if any)
Data (varies)
0 4 10 16 31
-
8
Format segment TCP adalah:
a. Source Port : Nomor port pemanggil pada host pengirim (client).
b. Destination Port : Nomor port yang dipanggil pada host tujuan (server).
c. Sequence Number : Nomor untuk memastikan urutan kedatangan paket.
d. Acknoledgement Number : Perkiraan TCP oktet berikutnya.
e. Header Lenght : Nomor dari 32 bit pada panjang header.
f. Reserved : Diset nol.
g. Code Bits : Berfungsi sebagai pengendali termasuk setup dan akhiran sesi.
h. Window : Nomor oktet yang dapat diterima oleh suatu perangkat.
i. Checksum : Perhitungan checksum dari suatu header dan data field.
j. Urgent : Menunjukkan akhir dari sebuah data yang mendesak.
k. Options : Suatu penegasan � Ukuran segmen TCP maksimum.
l. Data : Layer atas data protokol.
Mekanisme kerja TCP adalah connection oriented yaitu TCP membangun
suatu hubungan secara logika antar satu komputer dengan komputer lainnya. Dalam
waktu yang ditentukan komputer yang sedang berhubungan harus mengirimkan data
atau acknowledge agar hubungan tetap berlangsung. Jika hal ini tidak sanggup
dilakukan maka dapat diasumsikan bahwa komputer yang sedang berhubungan
mengalami gangguan dan hubungan secara logika dapat diputus.
Hal penting yang perlu dipahami pada TCP adalah port number. Port number
menentukan service yang dilakukan oleh aplikasi diatas TCP. Penomoran port ini
telah ditentukan oleh Network Information Center (NIC) dalam Request For
-
9
Comment (RFC) 1010. Prinsip kerja TCP didasarkan pada prinsip Client-Server.
Server adalah program yang secara pasif akan mendengarkan (listen) port number
yang telah ditentukan oleh TCP. Sedangkan client adalah program yang secara aktif
akan membuka hubungan TCP ke komputer server untuk meminta service yang
dibutuhkan.
2.3. Layer TCP/IP
Karena belum ada standarisasi model OSI, maka TCP/IP yang berkembang
kemudian adalah berupa protokol dengan tiga sampai lima lapis fungsi saja. Berikut
contoh arsitektur protokol TCP/IP empat lapis:
Seperti model OSI, pada proses pengiriman data, data dalam sebuah komputer
akan didorong melalui lapisan-lapisan itu (stack) dari lapisan aplikasi sampai lapisan
akses jaringan sehingga terkirim melalui sarana komunikasi data dan diterima oleh
Lapisan Aplikasi
Lapisan Tranportasi
Data
Lapisan Internet
Lapisan Akses
Jaringan
terdiri dari aplikasi dan proses yang memakai jaringan
menentukan datagram dan pengatur (handle) routing
membuat servis pengiriman data antar komputer (end-to end)
Tterdiri dari routing untuk mengakses jaringan fisik
-
10
komputer yang jauh. Oleh komputer yang jauh, data diterima dan kemudian didorong
dari lapisan akses jaringan ke lapisan aplikasi. Setelah diterima oleh lapisan aplikasi
barulah data bisa ditampilkan di layar monitor untuk diakses oleh usernya.
Dalam setiap layer diatas, ditambahkan informasi kontrol untuk memastikan
pengiriman/penerimaan data berjalan baik. Infomasi kontorl ini disebut sebuah
header, sebab ini dtempatkan didepan data yang dikirimkan. Pada setiap lapisan itu,
setiap header akan selalu ditempatkan dibagian depan data. Penambahan informasi
terhadap data pada proses pengiriman/penerimaan data ini disebut encapsulasi
(encapsulation).
TCP/IP memakai banyak cara ketika mengirimkan data ke tiap lapisan. Setiap
cara juga akan memberikan nama data yang akan dikirim jadi berbeda. Banyak
jaringan komputer yang mendasarkan pengiriman datanya kepada data sebagai packet
atau frame. Dalam contoh diatas dipilih data yang dikirim adalah data frame.
2.4. Use Case Diagram
Use case diagram adalah sebuah diagram yang menggambarkan interaksi
antara sistem dan eksternal system dan user. Dengan kata lain, use case diagram
menggambarkan secara grafikal tentang siapa yang akan menggunakan sistem dan
dengan cara bagaimana user berinteraksi dengan sistem.
Use case merupakan bagian dari seluruh fungsi sistem. Digambarkan secara
grafik dengan elips yang horizontal dengan nama dari use case tertera di atas atau di
bawah atau di dalam elips.
-
11
Aktor merupakan segala sesuatu yang dibutuhkan untuk berinteraksi dengan
sistem untuk mengubah informasi. Dapat berupa orang, organisasi atau sistem
informasi lain atau juga suatu waktu kejadian.
Terdapat beberapa relasi dalam menggambarkan use case diagram, antara lain:
1. Association merupakan relasi antara aktor dan sebuah use case dimana terjadi
interaksi antar mereka. Association dimodulkan dengan garis lurus yang
menghubungkan antara aktor dan use case-nya. Association dengan sebuah
panah keluar dari aktor ke use case mengidentifikasikan bahwa use case di-
initiate oleh aktor. Sedangkan, association dengan anak panah keluar dari use
case menuju ke aktor berarti aktor menerima use case.
2. Depends On yaitu sebuah relasi use case yang menentukan bahwa use case
yang lain harus dubuat sebelum current use case. Dapat menentukan sequence
dimana use case perlu dikembangkan. Digambarkan sebagai garis anak panah
yang dimulai dari satu use case dan menunjuk ke use case yang bergantung
kepadanya. Setiap relasi depends on diberi label “”.
3. Extends yaitu sebuah relasi antara extension use case dan use case yang di
extend. Extension use case adalah sebuah use case yang berisi langkah-
langkah yang diekstrak dari sebuah use case yang lebih kompleks agar
menjadi use case yang lebih sedarhana dan kemudian diberikan tambahan
fungsinya. Relasi ini digambarkan dengan garis anak panah yang dimulai pada
extension use case dan berakhir pada use case yang di-extending. Setiap
relasi extend diberi label “”.
-
12
4. Uses atau includes yaitu sebuah relasi antara abstract use case dan use case
yang digunakannya. Abstract use case adalah sebuah use case yang
mengurangi redudansi antara satu atau lebih use case dengan cara
mengkombinasikan langkah-langkah yang umum ditemukan dalam case-nya.
Relasi uses digambarkan dengan ujung anak panah dimulai dari use case
original menunjuk ke use case yang digunakan. Setiap garis yang
menunjukkan relasi uses dinamakan dengan “”.
5. Inheritance yaitu sebuah relasi use case yang tingkah laku pada umumnya
menggambarkan dua aktor yang menginisiasi use case yang sama akan
ditugaskan dan diekstrapolasi dalam abstract actor yang baru untuk
mengurangi redudansi. Aktor yang lain dapat menurunkan interaksi dari
abstract actor. Relasi ini digambarkan dengan garis anak panah yang dimulai
pada satu aktor dan menunjuk ke abstract actor yang memiliki interaksi
dengan turunan dari aktor yang pertama.
-
13
2.5. PHP (Personal Home Page)
PHP (Personal home page) adalah bahasa berbentuk script yang ditempatkan
dalam server dan diproses di server yang merupakan bahasa server-side scripting
yang menyatu dengan HTML untuk membuat halaman web yang dinamis. Server-
side scripting adalah sintaks dan perintah-perintah yang diberikan akan sepenuhnya
dijalankan di server tetapi disertakan pada dokumen HTML.
Ada beberapa cara untuk mulai menuliskan script PHP, yaitu:
1.
2.
3.
-
14
3. Operator adalah simbol yang digunakan dalam program utnuk melakukan
suatu proses, misalnya penjumlahan atau perkalian, pembandingan kesamaan
dua buah nilai, atau memberikan nilai ke variabel.
4. Struktur kendali merupakan sejumlah pernyataan yang terkait dengan
pengambilan keputusan (if dan switch), pengulangan (while, do-while, for)
serta penyataan break, continue, dan exit.
5. Fungsi: PHP hanya mengenal perintah untuk membuat fungsi, sedangkan
untuk prosedur digunakan perintah yang sama, tetapi tidak menggunakan
perintah return. Beberapa fungsi dan fasilitas yang disediakan PHP untuk
membuat halaman web dinamis, sebagai berikut:
a. Include dan Require
Kedua fungsi ini digunakan untuk memanggil dan mengeksekusi
program yang ditentukan. Sintaksnya adalah:
b. Session handling
Fasilitas ini digunakan mengamankan halaamn web dan membatasi
hak akses setiap pengunjung. Setiap halaman akan diberi fungsi untuk
memeriksa variabel session. Jika variabel session atau pengunjung
-
15
tidak dikenali maka pengunjung tidak dapat melihat halaman tersebut.
Sintaksnya adalah:
2.5.1. Kelebihan Dan Kekurangan PHP
Beberapa kelebihan yang dimiliki oleh bahsa pemrograman PHP adalah:
1. Kemampuannya untuk melkukan koneksi dengan berbagai macam database,
dalam hal ini database yang didukung oleh PHP dan mysql.
2. PHP dapat digunakan untuk mengupdate database, menciptakan database dan
mngerjakan perhitungan matematika.
3. PHP dapat digunakan bersama dengan HTML sehingga memudahkan dalam
membangun aplikasi dengan cepat.
4. PHP dapat berjalan dalam web server yang berbeda dalam sistem operasi
berbeda pula.
-
16
Selain memiliki kelebihan, bahasa pemrograman PHP juga memliki
kekurangan yaitu tidak adanya namespace. Namespace yaitu sebuah cara untuk
mengelompokkan nama variabel atau fungsi dalam susunan hirarkis.
2.6. Definisi FTP
FTP (File Transfer Protocol) merupakan layanan yang paling banyak
digunakan oleh pemakai internet untuk mengambil atau meletakkan file dari atau ke
mesin lain di internet. FTP sama seperti login ke suatu mesin, tapi disini user dibatasi
pada sejumlah command tertentu, dan untuk anonymous FTP user, dibatasi hanya
pada direktori tertentu. Arsip yang di-set agar dapat diakses oleh publik disebut arsip
anonymous FTP. Perintah yang dapat dilakukan juga sangat terbatas, biasanya hanya
dapat download, change direktori tertentu dan tidak dapat create file atau folder,
upload file dan lain sebagainya tergantung ketentuan yang dibuat oleh administrator
FTP. Hal ini dikarenakan sembarang orang dapat mengaksesnya. FTP client dapat
dijalankan pada hampir semua jenis komputer, dari laptop sampai supercomputer.
Setelah e-mail, FTP adalah layanan Internet yang paling umum digunakan.
Ada dua tipe akses yang FTP server sediakan yaitu user FTP dan
anonymous FTP. User FTP adalah adalah layanan FTP yang disediakan untuk
orang yang mempunyai sebuah user account pada suatu host, sedangkan
anonymous FTP disediakan untuk publik. Dengan layanan FTP anda dapat
melakukan transfer file dari sistem anda atau ke sistem anda dari berbagai tempat
di internet. Tapi anda tidak dapat mengeksekusi semua perintah yang ada karena
-
17
FTP server memang hanya menyediakan perintah-perintah tertentu, seperti
melihat daftar dan mengubah direktori, dan menerima serta mengirim file. Pada
instalasi ini yang akan menjadi pokok bahasan kita adalah FTP account yang
dapat melakukan semua perintah, sehingga diperlukan account super dan bukan
anonymous account.
2.7. Konsep FTP
FTP dijalankan dengan dua port, 20 dan 21, dan jelas diatas protocol TCP/IP.
FTP server mendengarkan port 21 untuk koneksi yang datang dari FTP client.
Koneksi pada port ini membentuk suatu aliran control, yang mana perintah akan
dikirimkan kepada FTP server. Untuk transfer file yang sebenarnya, dibutuhkan
koneksi yang berbeda. Tergantung pada mode transfer, klien (active mode) atau
server (passive mode) dapat mendengarkan koneksi data yang dating. Sebelum
transger file dimulai, klien dan server menegosiasikan port yang digunakan. Pada
kasus active connection (server connect ke klien untuk transfer data, server
menggunakan port 20. Untuk passive connection, tidak ada pembatasan.
Saat data sedang ditransfer melalui aliran data, aliran control tidak beroperasi.
Hal ini dapat menyebabkan masalah jika mengirimkan file besar melalui firewall
karena adanya time-out saat tidak beroperasi.
Saat transfer data melalui jaringan, dua mode dapat digunakan:
1. ASCII mode
2. Binary Mode
-
18
Dua tipe ini memiliki perbedaan pada bagaimana mereka mengirimkan data.
Saat file dikirimkan menggunakan ASCII, huruf, angka dan karakter dikirimkan
menggunakan code ASCII. Penerima menyimpan file ini pada suatu text file dengan
format yang berkesesuaian (contohnya, penerima yang memakai mesin Unix
menyimpannya dengan format Unix, penerima Macintosh akan menyimpan dengan
menggunakan format Mac). Sehingga saat transfer ASCII digunakan, dapat
diasumsikan bahwa plain text yang dikirimkan, yang mana akan disimpan oleh
komputer penerima dengan formatnya sendiri.
Sedangkan pada pengiriman binary, pengirim akan mengirimkan bit per bit
dari file dan penerima juga akan menerima aliran bit tersebut dan menyimpannya.
-
19
2.8. Model FTP
Model dari FTP gambarnya sebagai berikut
Gambar 2.2 Model FTP
FTP server terdiri dari dua bagian, yaitu: server, yang menanggapi permintaan
client seperti mengirim file, mendaftar direktori yang ada, dan lain-lain; dan
filesystem yang merupakan tempat FTP server membaca file dan direktori yang ada.
File Sistem
User Interface
User PI
User DTP
Server PI
File Sistem Server DTP
User
PI: Protocol Intrepreter
DTP: Data Transfer Protocol
-
20
BAB III
ANALISIS DAN PERANCANGAN SISTEM
2.9. Analisis Sistem
3.1.1 Gambaran umum sistem
Aplikasi FTP client berfungsi untuk melakukan manajemen file yang terletak
pada komputer remote. Aplikasi ini dapat melakukan upload secara otomatis dengan
fasilitas singkronisasi. Dengan fasilitas ini, FTP akan membandingkan waktu dari
suatu file yang terdapat di komputer lokal dengan komputer server. Apabila file lokal
lebih baru dengan file pada server maka secara otomatis akan di-upload ke komputer
server. Namun apabila memiliki waktu yang sama atau lebih muda maka tidak akan
diupload. Proses ini dilakukan terhadap seluruh file yang ada pada server. Hal ini
akan memudahkan webmaster untuk meng-update situsnya karena hanya
membutuhkan sekali klik saja. Untuk memudahkan pengguna dalam memakai FTP,
aplikasi ini dapat menyimpan alamat-alamat FTP serta informasi-informasi
penunjangnya, seperti username dan password. Sehingga pada saat user ingin
mengunjungi kembali alamat FTP yang telah dikunjunginya, user hanya perlu
mengambilnya kembali dari alamat yang telah disimpan. Aplikasi ini bersifat web-
based sehingga dapat langsung diakses tanpa harus meng-install dahulu. Sehingga
memudahkan maintenance situs oleh webmaster karena dapat dilakukan dimana saja
tanpa perlu meng-install suatu program terlebih dahulu.
-
21
3.1.2 Requirement Analisis
3.1.2.1 Use Case Diagram
Login server
Delete
Rename
Download
Upload
Sinkronisasi
Pengguna
Sistem Synchronize FTP
Gambar 3.1. Use Case Diagram
Create File
Create Folder
-
22
3.2. Analisis Proses
Tabel 3.1. Input/Output External Entitas
External Entitas Input Output
Pengguna Data Pengguna, Instruksi,
Data file
Hasil eksekusi instruksi,
Data file
Komputer Server Instruksi Hasil Instruksi
0 Sistem Web Based FTP dengan
Sinkronisasi
Pengguna
Komputer
Gambar 3.2. Context Diagram
Data Pengguna,
Instruksi, Data file
Hasil eksekusi instruksi, Data file
Instruksi
Hasil Instruksi
-
23
0
Sistem web FTP dengan
Sinkronisasi
2P
Proses FTP
1P
Login
3P
Logout
2.1P
Delete File
2.2P
Rename
File
2.3P
Download
File
2.5P
Upload
File
2.6P
Sinkronisasi
Gambar 3.3. Hierarchy Diagram
2.4P
Create
File/Folder
-
24
3.3. Desain Sistem
Sebelum memulainya, user terlebih dahulu harus login menggunakan account
server yang bersangkutan. User harus mengisikan informasi server yang akan
diakses, informasi berupa data alamat host server. Contoh ftp.mozilla.org, atau dapat
pula langsung menulis alamat IP dari host, contoh 213.206.94.83. Jika server tersebut
membutuhkan user untuk login, maka dibutuhkan pula username serta password-nya.
Namun jika tidak maka user hanya perlu menuliskan anonymous, tanpa perlu
menuliskan password. Setelah semua terisi klik connect atau dapat pula disimpan ke
media penyimpanan lokal terlebih dahulu. Jika data tersebut disimpan, maka pada sesi
berikutnya user hanya perlu me-load data saja untuk mengakses komputer server.
Pengguna
1P
Login
3P
Logout
2P
Proses FTP
Data Pengguna
Hasil Proses,
File Data
Instruksi Data Pengguna
Valid
Gambar 3.4. Data Flow Diagram
Level 0
Data File
Status Logout
-
25
Flowchart proses login server:
Fasilitas singkronisasi akan membandingkan waktu dari file-file pada direktori
lokal dengan direktori server. Oleh karena itu user harus terlebih dahulu meng-input-
kan letak folder lokal yang nantinya akan dibandingkan dengan folder root di
komputer server. Proses ini akan membandingkan file per file di dalam direktori yang
ada. Apabila didapati file lokal memiliki modified time yang lebih baru daripada yang
di server, maka proses upload dilakukan dan akan meng-update file yang sama yang
terdapat pada direktori server. Proses ini melibatkan fungsi iterasi dan memerlukan
variabel yang berbentuk sebuah array.
Start
Pengguna Valid
Start FTP
T
F
Ambil Alamat Host
Ambil Username
Ambil Password
Gambar 3.5. Flowchart Proses
Login Server
-
26
Proses sinkronisasi:
Langkah 1 : Baca seluruh isi pada direktori lokal yang masuk ke fungsi.
Langkah 2 : Dengan proses iterasi, lakukan proses pendefinisian list file
sebagai variable file.
Langkah 3 : Buat atau isi variabel fileRemote dengan variabel file, ditambah
awalan direktori remote.
Langkah 4 : Buat atau isi variabel fileLokal dengan variabel file, ditambah
awalan direktori lokal.
Langkah 5 : Cek apakah variabel file merupakan direktori atau file.
Langkah 6 : Apabila variabel file merupakan direktori, maka fungsi akan
dipanggil kembali (rekursif) dengan variabel fileLokal dan
fileRemote sebagai masukan.
Langkah 7 : Buat direktori baru, apabila direktori yang dituju tidak terdapat
dalam direktori server.
Langkah 8 : Pada direktori server, masuk ke direktori yang dibuat sebelumnya.
Langkah 9 : Ubah time zone aplikasi sesuai GMT (Greenwich Mean Time).
Langkah 10 : Bandingkan fileRemote dengan fileLokal
Langkah 11 : Apabila fileLokal lebih besar dari fileRemote maka dilakukan
proses upload.
Langkah 12 : Masuk ke iterasi file selanjutnya, dalam direktori saat ini.
-
27
Pada bagian ini akan dibuat rancangan interface dari aplikasi yang akan
dibuat. Interface ini yang nantinya akan berinteraksi secara langsung dengan para
pengguna. Oleh karena itu, tombol-tombol dan antarmuka dirancang agar dapat
memenuhi kebutuhan pengguna dan memudahkan pengguna dalam menggunakan
aplikasi yang akan dibuat.
Halaman Connect to FTP server berfungsi sebagai halaman masukan untuk
alamat tujuan FTP server. Masukan dapat berupa hostname, misalnya ftp.mozilla.org
atau alamat IP misalnya 122.201.39.20. Jika alamat FTP tersebut memerlukan
account maka masukkan username serta password ke tempat yang telah tersedia.
Namun jika tidak diperlukan, klik atau check anonymous, dan masukan username dan
password dapat dikosongkan.
-
28
Setelah masuk ke alamat FTP yang dituju, maka akan tampak list file yang
terdapat di drektori FTP server. Di bagian atas terdapat menu untuk refresh, kembali
ke folder sebelumnya serta logout. Di bagian bawah terdapat form untuk upload file,
create file, create folder, serta singkronisasi. Sedangkan di sebelah kanan list file
terdapat ikon menuju fungsi FTP lainnya, seperti delete file atau folder, rename file
atau folder serta download file.
Connect to FTP server
Hostname/IP :
Username :
Password :
Anonymous
Connect Save
Gambar 3.6. Rancangan Halaman
Login
-
29
3.4. Desain Teknologi secara Terperinci
Perangkat keras yang dibutuhkan adalah Personal Computer (PC) yang
difungsikan sebagai klien dan server.
1. Rincian Kebutuhan Hardware
• FTP Server dan Application Server
• Prosessor pentium III
• Kapasitas hardisk 6 GB
• RAM 128 MB
• Client
FTP Site Name
Back | Refresh | Logout
File1.txt
File2.html
New Folder
D Dl R
D R
D R
Dl
Dl
Upload
Create File
Create Folder
Gambar 3.7. Rancangan Halaman
Utama
Singkonize
-
30
• Prosessor pentium II
• Kapasitas hardisk 4 GB
• RAM 32 MB
2. Rincian Kebutuhan Software
• Webserver
• Sistem operasi Windows atau Linux
• Apache2
• FTP Server
• Sistem operasi Windows atau Linux
• Vsftpd
• Client
• Sistem operasi windows 98
• Browser IE (Internet Explorer)
3. Rincian Kebutuhan Brainware
• Client
• Minimal menguasai aplikasi under windows dan bisa
menggunakan browser
-
31
BAB IV
IMPLEMENTASI SISTEM DAN ANALISA HASIL
Setelah melakukan analisa dan rancangan, tahap berikutnya adalah
mengimplementasikan hasil dan rancangan yang sudah dibuat sebelumnya. Bab ini
membahas implementasi sistem berdasarkan analisa dan rancangan yang telah dibuat.
Penulis mengimplementasikan hasil dari analisa dan rancangan ke dalam bentuk
aplikasi.
4.1 Kebutuhan Sistem
Untuk dapat menjalankan sistem dibutuhkan beberapa sistem penunjang,
antara lain:
• Web Server
o Apache2.
o Php 5.
• FTP Server
o Filezilla FTP server
• Sistem Operasi
o Miscrosoft Windows XP SP 1.
-
32
• Browser
o Internet Explorer 6.0 SP 1 atau Firefox 2.0 merupakan web browser yang bisa
digunakan untuk mengakses sistem.
o Javascript harus diaktifkan
4.2 Class Diagram
Pembuatan class diagram ini bertujuan untuk mengelompokan fungsi – fungsi
yang dibuat.
Connect() Last mod time() Synchronize() New Dir() Get File() Rename file() Match file() File size() Delete file() Download file() Upload file() Upload open file() Change dir() Get dir() File chmod() Get file list() Del dir() Get sys() ftp disconnet() parse ftp rawlist()
myFTP
-
33
4.3 User Interface
User interface
Gambar X.X Adalah gambar user interface untuk login
Gambar 4.1 Tampilan
Login
-
34
Berikut adalah user interface program utama.
Gambar 4.2 Tampilan
Utama
-
35
Berikut adalah tampilan saat proses sinkronisasi
Gambar 4.3 Tampilan
Proses Sinkronisasi
-
36
4.4 Implementasi
4.4.1 Implementasi Aplikasi Login
Untuk menggunakan FTP ini pengguna harus memasukkan informasi ke form
yang terdapat disini. Informasi ini berupa hostname, yaitu alamat ftp server yang
ingin dibuka. Hostname ini dapat berupa IP address seperti 122.201.39.20 maupun
FTP domain name seperti ftp.mozilla.org. Setelah informasi hostname ini didapatkan,
pengguna diminta untuk memasukan username dan password apabila FTP server
tersebut membutuhkannya, tetapi apabila tidak, pengguna cukup mengisi anonymous
untuk username dan kolom password dikosongkan. Untuk informasi port, diisikan
dengan port FTP yang digunakan oleh FTP server tersebut. Default FTP port
menggunakan port 21.
Proses login dapat dilihat pada perintah yang terdapat di index.php berikut ini:
Host Address Username Anonymous Password Port
-
37
Dan akan diproses pada perintah sebagai berikut:
Dalam proses ini post dari form login diterima dan masuk sebagai
$ftp_server, $ftp_user_name, $ftp_user_pass, $ftp_port. Fungsi PHP
untuk koneksi ke server FTP adalah ftp_connect($ftp_server, $ftp_port)
Setelah berhasil masuk ke FTP server, program akan memeriksa sistem yang
digunakan oleh FTP server. Karena program ini hanya berjalan pada FTP server
function connect($ftp_server, $ftp_user_name, $ftp_user_pass, $ftp_port){ $this->connector = @ftp_connect($ftp_server, $ftp_port); $this->login_result = @ftp_login($this->connector, "$ftp_user_name", "$ftp_user_pass"); if ((!$this->connector) || (!$this->login_result)) { echo "FTP connection to $ftp_server for user $ftp_user_name has failed!
"; echo "Return home
"; die; } else { if ($this->get_sys() == "UNIX") { echo "Connected to $ftp_server, for user $ftp_user_name."; } else { echo "Support for windows FTP servers has not yet been added."; die; } } }Port
-
38
berbasis Unix, maka jika terkoneksi ke FTP server berbasis Windows, program akan
mengeluarkan pesan error dan program akan terhenti. Namun jika FTP server adalah
mesin berbasis Unix maka program akan melanjutkan ke program utama. Hal ini
dikarenakan adanya perbedaan format penulisan direktori antara Windows
(C:/direktori/subdirektori/file) dengan Unix (/direktori/subdirektori/file).
4.4.2 Implementasi Aplikasi Utama
Aplikasi ini berfungsi untuk menampilkan list file yang terdapat di server FTP
yang dituju. Aplikasi ini juga berfungsi sebagai portal menuju fungsi-fungsi FTP
lainnya seperti upload, download, rename, create file dan folder serta synchronize.
Proses untuk menampilkan file FTP server adalah sebagai berikut:
$mylist = array(); $mylist = $newftp->get_file_list($mydir); $files = $newftp->parse_ftp_rawlist($mylist); echo ""; foreach($files as $data) { if ($data['perms'] == "Attributes") { echo "$data[name] $data[size] $data[date] $data[perms] Options "; } elseif ($data['is_dir'] == TRUE) { if ($mydir == "/") { $target = $mydir.$data[name]; } else { $target = $mydir."/".$data[name]; } echo " $data[name]
-
39
$data[date] $data[perms] "; } else { echo " $data[name] ".round($data[size] / 1024)." KB $data[date] $data[perms] "; } } echo ""; echo ""; echo "
-
40
Perintah diatas akan menampilkan list file yang terdapat di direktori remote.
Untuk mendapatkan list file tersebut program akan memanggil fungsi $newftp-
>get_file_list($mydir); Didalam fungsi ini terdapat perintah PHP yang
digunakan untuk menampilkan list file-file yang terdapat di direktori remote, yaitu
ftp_rawlist($directory); Hasil dari perintah ini adalah list file yang detail
sebagai berikut:
-rw-r--r-- 1 ftp ftp 64403 Aug 05 12:19 function.ftp-nlist.php.htm -rw-r--r-- 1 ftp ftp 171362 Aug 05 12:19 function.ftp-rawlist.php.htm drwxr-xr-x 1 ftp ftp 0 Aug 05 12:23 function.ftp-rawlist.php_files
"; -
41
-rw-r--r-- 1 ftp ftp 33173 Aug 05 12:23 multidimensional_arrays.php.htm drwxr-xr-x 1 ftp ftp 0 Aug 05 12:18 New Folder
Sebelum ditampilkan list file server terlebih dahulu harus di-parsing untuk
mendapatkan informasi yang diperlukan dan tidak menampilkan informasi yang
sekiranya tidak atau belum diperlukan. Informasi yang diperlukan antara lain:
• Nama file
• Ukuran file
• Atribut file
• User FTP
• Grup FTP
Untuk mem-parsing list file tersebut, digunakan perintah sebagai berikut:
function parse_ftp_rawlist($list) { $files[0] = array ("perms" => "Attributes", "num" => "", "user" => "", "group" => "","size" => "Size", "date" => "Date", "name" => "Name", "is_dir" => "", "is_link" => "", "target" => ""); $regexp = "([-ldrwx]{10})[ ]+([0-9]+)[ ]+([A-Z-]+)[ ]+([A-Z-]+)[ ]+([0-9]+)[ ]+([A-Z]{3}[ ]+[0-9]{1,2}[ ]+[0-9:]{4,5})[ ]+(.*)"; foreach ($list as $line) { $is_dir = $is_link = FALSE; if (eregi($regexp, $line, $regs)) { if (!eregi("^[.]", $regs[7])) { $i++; if (eregi("^[d]", $regs[1])) { $is_dir = TRUE; } elseif (eregi("^[l]", $regs[1])) { $is_link = TRUE;
-
42
Fungsi ini menggunakan regular expression untuk mendapatkan informasi
dari fungsi ftp_rawlist. Hasil parsing tersebut disimpan dalam sebuah array untuk
mempermudah pengunaannya nanti. Regular expression yang digunakan adalah ([-
ldrwx]{10})[ ]+([0-9]+)[ ]+([A-Z-]+)[ ]+([A-Z-]+)[ ]+([0-9]+)[ ]+([A-
Z]{3}[ ]+[0-9]{1,2}[ ]+[0-9:]{4,5})[ ]+(.*) dari -rw-r--r-- 1 ftp ftp 64403 Aug
05 12:19 function.ftp-nlist.php.htm. Maka yang didapat adalah: atribut, num, user, group,
size, date, name, is_dir. Variabel is_dir digunakan untuk mengklasifikasikan antara
file dan folder pada direktori tersebut.
list($regs[7], $target) = split(" -> ", $regs[7]); } $files[$i] = array ( "perms" => $regs[1], "num" => $regs[2], "user" => $regs[3], "group" => $regs[4], "size" => $regs[5], "date" => $regs[6], "name" => $regs[7], "is_dir" => $is_dir, "is_link" => $is_link, "target" => $target ); } } } return $files; }
}
-
43
4.4.3 Implementasi Fungsi FTP
Dalam aplikasi ini terdapat fungsi-fungsi standar sebuah FTP client. Seperti
upload, download, rename, delete, create file dan folder.
4.4.3.1 Implementasi Fungsi Upload
Fungsi upload digunakan untuk menyalin satu file pada direktori lokal ke
direktori remote. Pengguna terlebih dahulu harus memasukkan nama file yang akan
disalin.
Untuk fungsi upload dapat dilihat pada perintah berikut:
Proses upload memerlukan sebuah input dari pengguna, yaitu file yang akan
di-upload serta lokasi direktori pada remote direktori tempat file tersebut akan
disimpan. Hasil input tadi akan masuk ke fungsi upload file diatas. Di dalam fungsi
ini terdapat fungsi PHP untuk upload file, yaitu ftp_put($this->connector,
$destination_file, $source_file, FTP_ASCII).
4.4.3.2 Implementasi Fungsi Download
Fungsi download digunakan untuk menyalin satu file pada direktori remote ke
direktori lokal. Pengguna terlebih dahulu harus memasukkan lokasi pada direktori
lokal tempat file tersebut akan diletakkan.
function upload_file($destination_file, $source_file) { $getback = @ftp_put($this->connector, $destination_file, $source_file, FTP_ASCII) or die("Permission denied for upload of file."); return $getback; }
-
44
Fungsi download file terlihat pada perintah berikut:
Fungsi download memerlukan input berupa nama file dan lokasi tempat file
tersebut akan disimpan pada direktori lokal. Input file yang akan didownload otomatis
didapat saat pengguna mengklik icon download. Input tersebut masuk ke dalam
fungsi download file dan akan diproses oleh perintah PHP ftp_fget($this-
>connector, $handle, $targetfile,FTP_ASCII, 0). Sebelumnya file harus
dibuat terlebih dahulu dengan perintah fopen($localpath, 'w');
4.4.3.3 Implementasi Fungsi Rename
Fungsi rename digunakan untuk mengganti nama file atau nama folder yang
terdapat pada direktori remote. Pengguna terlebih dahulu harus memasukkan nama
file atau folder baru.
Untuk fungsi rename dapat dilihat pada perintah berikut:
function download_file($targetfile, $localpath) { $handle = fopen($localpath, 'w'); $getback = ftp_fget($this->connector, $handle, $targetfile,FTP_ASCII, 0) or die("You do not have permission to access this file."); return $getback; }
function rename_file($original_name, $new_name) { $getback = @ftp_rename ($this->connector, $original_name, $new_name) or die("You do not have permission to access this file."); }
-
45
Fungsi rename memerlukan input berupa nama file lama dan nama file baru.
Variabel tersebut masuk ke fungsi rename file dan akan diproses oleh perintah
ftp_rename ($this->connector, $original_name, $new_name)
4.4.3.4 Implmentasi Fungsi Delete
Fungsi delete digunakan untuk menghapus satu file atau satu folder yang
terdapat pada direktori remote.
Fungsi delete file dapat dilihat pada perintah berikut:
Fungsi ini hanya memerlukan satu input, yaitu nama file dan direktorinya.
Input ini akan masuk ke fungsi delete file sebagai $targetfile. Didalam fungsi ini
variabel tersebut akan diproses dengan perintah @ftp_delete($this-
>connector,$targetfile).
Fungsi delete folder berbeda dengan fungsi delete file, karena dalam delete
folder, fungsi terlebih dahulu harus menghapus isi dari folder tersebut. Penghapusan
file ini menggunakan metode rekursif, karena jumlah subfolder yang tak terhitung.
function delete_file($targetfile) { $getback = @ftp_delete($this->connector,$targetfile) or die("You do not have permission to access this file."); return $getback; }
-
46
Fungsi delete folder dapat dilihat pada perintah berikut
Fungsi ini memerlukan input berupa nama direktori yang akan dihapus. Dalam
fungsi del dir, direktori ini akan dicek isinya dengan perintah ftp_nlist($this-
>connector, $directory); Dengan iterasi foreach program akan memeriksa
secara rekursif semua isi direktori tersebut. Apabila menemukan file, maka file
tersebut akan dihapus dengan perintah ftp_delete($this->connector, $file);.
Apabila ditemukan subdirektori, maka akan memasuki subdirektori tersebut dengan
memanggil fungsi dirinya sendiri. Dan proses dimulai dari awal, di subdirektori
tersebut untuk menghapus file dan memasuki subdirektori yang terdapat di dalamnya.
4.4.3.5 Implementasi Fungsi Create File
Fungsi create file merupakan fungsi untuk membuat satu file baru di direktori
remote dengan nama dan tipe file sesuai yang di-input-kan oleh pengguna. Fungsi ini
pada dasarnya sama dengan fungsi upload file, hanya bedanya file yang di-upload
merupakan file baru.
function del_dir($directory) { $contents = ftp_nlist($this->connector, $directory); foreach($contents as $file){ if (ftp_size($this->connector, $file) == -1){ $this->del_dir($file); } else { ftp_delete($this->connector, $file); } } ftp_rmdir($this->connector, $directory); }
-
47
Fungsi create file ini dapat dilihat dari perintah berikut:
Pada dasarnya fungsi ini hampir sama dengan fungsi upload file, bedanya
pada fungsi upload open file ini file yang akan di-upload adalah file kosong dengan
nama file sesuai dengan yang telah di-input-kan oleh pengguna. File kosong tersebut
didapat dari fungsi pada control.php berikut
Perintah $fp = tmpfile(); akan membuat sebuah file sementara di direktori
webserver, bukan FTP server, lalu menuliskan isi dari file yang di-post oleh pengguna
dengan perintah fwrite($fp, $_POST['file']); dan rewind($fp); . Langkah
selanjutnya adalah upload file tersebut ke direktori FTP server.
4.4.3.6 Implementasi Fungsi Create Folder
Fungsi create folder digunakan untuk membuat satu folder baru di direktori
remote dengan nama sesuai yang di-input-kan oleh pengguna.
Fungsi create folder ini dapat dilihat pada perintah berikut:
function upload_open_file($destination_file, $source_file) { $getback = @ftp_fput($this->connector, $destination_file, $source_file, FTP_ASCII) or die("Permission denied for upload of file."); return $getback; }
$fp = tmpfile(); $file = $_POST['file']; fwrite($fp, $_POST['file']); rewind($fp); $uploadfile = $newftp->upload_open_file($file, $fp);
-
48
Fungsi new dir memerlukan sebuah input dari pengguna berupa nama folder
yang akan dibuat. Dalam fungsi ini variabel tersebut akan diproses dengan perintah
ftp_mkdir ($this->connector,$dir_name).
4.4.3.7 Implementasi Fungsi Sinkronisasi
Fungsi sinkronisasi digunakan untuk mensinkronkan isi dari folder lokal
dengan folder remote. Fungsi ini akan menyalin file lokal yang berbeda waktu dengan
file remote Dalam hal ini file lokal memiliki modified date yang lebih baru dengan file
remote. Sinkronisasi ini juga berlaku pada file yang tidak terdapat pada direktori
remote tetapi ada pada direktori lokal. Sinkronisasi ini hanya menyalin atau
menambah file, dan tidak menghapus file yang ada di direktori remote tetapi ada pada
direktori lokal. Fungsi ini adalah fungsi rekursif, sehingga sinkronisasi berjalan pada
direktori dan subdirektori-subdirektori yang terdapat didalamnya.
function new_dir($dir_name) { $getback = @ftp_mkdir ($this->connector,$dir_name) or die("You do not have permission to create this directory."); return $getback; }
-
49
Input dari fungsi sinkronisasi ini ada dua yaitu direktori lokal dan direktori
remote yang akan disinkronkan dengan direktori lokal. Setelah memeriksa apakah
koneksi ke FTP server masih terkoneksi, program akan mengambil daftar file yang
terdapat di direktori lokal dengan perintah $contents = scandir($dirLocal);.
Hasil dari perintah ini hanya berupa daftar nama file sebagai berikut:
. .. New Folder New Folder (2) Page 5 - Arrays and PHP A Primer.htm
function synchronize($dirLocal, $dirRemote){ if ($this->connector != false){ $contents = scandir($dirLocal); foreach($contents as $file){ $file3 = "$dirLocal/$file"; $file2 = "$dirRemote/$file"; if (is_dir($file3) && !(($file == ".") || ($file == ".."))){ $this->synchronize($file3,$file2); } elseif (!(($file == ".") || ($file == ".."))) { if (!($this->change_dir($dirRemote))){ $this->new_dir($dirRemote); $this->change_dir($dirRemote); } if (!(filemtime($file3) last_mod_time($file2))){ $fp = fopen($file3, 'r'); $filetime = date ("F d Y H:i:s.", $this->last_mod_time($file2)); $this->upload_open_file($file, $fp); echo "$file - transfer completed
"; echo "File Local was last modified: " . date ("F d Y H:i:s.", filemtime($file3)). "
"; echo "File Remote was last modified: $filetime
"; } } } } } -
50
function.ftp-nlist.php.htm function.ftp-rawlist.php.htm function.ftp-rawlist.php_files multidimensional_arrays.php.htm userguide.pdf
Selanjutnya dengan iterasi foreach file-file tersebut didefinisikan sebagai
$file dan satu persatu dilakukan proses selanjutnya yaitu menambahkan direktori
lokal ke satu variabel baru dan direktori remote dengan variabel baru lainnya dengan
perintah $file3 = "$dirLocal/$file"; dan $file2 = "$dirRemote/$file";
variabel $file tersebut dapat berupa folder ataupun file. Oleh karena itu perintah if
(is_dir($file3) && !(($file == ".") || ($file == ".."))) akan
memeriksa apakah $file tersebut adalah file atau folder. Apabila berupa folder maka
akan masuk ke fungsi dirinya sendiri dengan masukan direktori lokal dan remote
yang baru, apabila direktori tersebut tidak terdapat di remote direktori maka akan
dibuat terlebih dahulu dengan perintah perintah $this->new_dir($dirRemote);
lalu masuk ke direktori tersebut dengan perintah $this-
>change_dir($dirRemote);. Apabila $file tersebut berupa file maka akan
dilakukan pemeriksaan modified date antara file lokal dengan file remote. Jika file
lokal lebih baru dari file remote maka proses upload akan dilakukan. Jika file remote
tidak ada, maka pengecekan modified date akan menghasilkan tanggal January 01
1970 06:59:59. Sehingga secara otomatis akan dianggap file lokal lebih baru dan
filelokal tersebut di-upload ke direktori remote. Sebelum dilakukan pembandingan,
perlu dilakukan sinkronisasi time zone terlebih dahulu. Dalam hal ini waktu
disamakan berdasarkan waktu Greenwich Mean Time (GMT)
-
51
4.5. Analisa Hasil
Untuk menguji sistem FTP ini diperlukan setidaknya dua komputer. Namun
disini penulis hanya menggunakan satu komputer saja, yaitu webserver FTP server
dan klien berada pada satu mesin. Program yang digunakan adalah Apache2, PHP5
sebagai webserver, Filezilla sebagai FTP server dan Mozilla Firefox sebagai browser
klien.
Agar pengguna dapat melakukan upload, download, delete, create file dan
folder serta rename, maka perlu dibuat satu account FTP khusus yang diberi
priviledge untuk dapat melakukan semuanya.
Dapat dilihat username yang dibuat adalah ftp. Pengguna ini mendapatkan
seluruh priviledge yang tersedia.
Setelah webserver dijalankan, pengguna dapat mengakses aplikasi FTP ini
dengan mengetikkan localhost atau 127.0.0.1 pada web browser. Pada menu login
Gambar 4.4 Tampilan
Pembuatan User Account
-
52
form hostname diisikan localhost atau 127.0.0.1, username diisikan ftp dan password
diisi dengan ftp. Siapkan file di direktori lokal yang akan di-upload dan klik
synchronize.
Proses sinkronisasi berjalan secara rekursif menjangkau seluruh file dan folder
termasuk subfolder dan file-file didalamnya.
4.5.1 Keunggulan Sistem
Kelebihan sistem ini adalah :
1. Sistem yang dibuat adalah sistem yang berbasis web maka dapat
dijalankan melalui jaringan intranet ataupun internet.
2. Algoritma yang digunakan dalam proses sinkronisasi menggunakan
algoritma rekursif yang efisien.
3. Fungsi-fungsi FTP dalam aplikasi ini berbentuh class, sehingga dapat
digunakan kembali pada aplikasi lainnya jika dimungkinkan.
4. Fungsi-fungsi yang terdapat dalam FTP client ini cukup lengkap karena
hampir semua fungsi FTP standar terdapat disini.
4.5.2 Kekurangan Sistem
1. Tampilan user interface kurang user friendly, sehingga cukup
menyusahkan pengguna.
-
53
2. FTP client ini tidak dapat menyimpan daftar alamat FTP server serta
username dan password-nya, sehingga pengguna harus memasukkan
ulang alamat FTP server walaupun sering digunakan.
-
54
BAB V
PENUTUP
5.1 Kesimpulan
Berdasarkan hasil implementasi web based FTP dengan fungsi sinkronisasi,
maka dapat disimpulkan bahwa :
1. Sistem ini sudah berhasil di ujicoba dengan menggunakan simulasi komputer
server dan klien
2. Sistem ini diharapkan dapat menambah kemudahan webmaster dalam mengelola
website-nya.
5.2 Saran
Aplikasi web based FTP dengan fungsi singkronisasi yang telah dibangun
masih memiliki beberapa kekurangan, sehingga diperlukan pengembangan untuk
menyempurnakan aplikasi ini. Pengembangan yang dimaksud adalah:
1. User interface yang lebih mudah dan nyaman, sehingga dapat lebih memudahkan
pengguna dalam memanfaatkannya.
2. Fungsi FTP yang lebih luas, seperti download folder, upload zip file dan otomatif
meng-extract-nya di directori remote.
-
55
DAFTAR PUSTAKA
Whitten Jeffry L., Bentley Lonnie D., Dittman C., System Analysis and Design
Method, fifth edition, The McGraw-Hill Company, Inc.
PHP manual, http://www.php.net/manual/en/index.php, Mei 2006
Wikipedia, www.wikipedia.com, Mei 2006
Abdul Kadir, Dasar Pemrograman Web Dinamis dengan PHP. 2002
-
56
LAMPIRAN
Index.php
Web based FTP
Host Address Username Anonymous Password -
57
Port
-
58
-
59
rename.php
Copyright © 2007save as.php
-
60
Copyright © 2007view.php
.style1 {font-family: Verdana, Arial, Helvetica, sans-serif}
-
61
-
62
User ".$filespecifics['user']." Group ".$filespecifics['group']."
"; echo " "; } echo ""; require_once('includes/footer.php'); $newftp->ftp_disconnect(); } else { echo "No Connection Established
"; } ?>
Copyright © 2007control.php
-
63
exit(); } } $_SESSION['ftp_label'] = $_POST['ftp_label']; $_SESSION['ftp_server'] = $_POST['ftp_server']; $_SESSION['ftp_user_name'] = $_POST['ftp_user_name']; $_SESSION['ftp_user_pass'] = $_POST['ftp_user_pass']; $_SESSION['ftp_port'] = $_POST['ftp_port']; } $ftp_label = $_SESSION['ftp_label']; $ftp_server = $_SESSION['ftp_server']; $ftp_user_name = $_SESSION['ftp_user_name']; $ftp_user_pass = $_SESSION['ftp_user_pass']; $ftp_port = $_SESSION['ftp_port']; ?> .style1 {font-family: Verdana, Arial, Helvetica, sans-serif}
-
64
$fp = tmpfile(); $file = $_POST['file']; fwrite($fp, $_POST['file']); rewind($fp); $uploadfile = $newftp->upload_open_file($file, $fp); echo "$file Created
"; } if ($_GET['action'] == "sync") { //$sync = $newftp->synchronize_local($_POST['local_folder'], $_POST['remote_folder']); echo "Current Server date: ".date ("F d Y H:i:s O")."
"; $sync = $newftp->synchronize($_POST['local_folder'], $_POST['remote_folder']); echo "
Synchronizing Done
"; } if ($_GET['action'] == "rename") { $newname = $_POST['new_name']; $dir=$_GET['dir']; $old=$dir."/".$_GET['file']; $new=$dir."/".$newname; $rename = $newftp->rename_file($old, $new); echo "Renamed to $newname
"; } if ($_GET['action'] == "del_dir") { $dir = $_GET['delete']; $deldirectory = $newftp->del_dir($dir); echo "$dir Deleted
"; } if ($_GET['action'] == "newdir") { $dirname = $_POST['dir_name']; $newdir = $newftp->new_dir($dirname); echo "$dirname Created
"; } if ($_GET['action'] == "delete") { $targetfile=$_GET['file']; $deletefile = $newftp->delete_file($targetfile); echo "$targetfile Deleted
"; } if ($_GET['action'] == "download") { $file = $_GET['file']; $fullpath = $_POST['location']."/".$_POST['name']; echo"$file,$fullpath"; $download = $newftp->download_file($file,$fullpath); echo "$file Downloaded
"; } if ($_GET['action'] == "upload") { $destination_file = $_FILES['file']['name']; $source_file = $_FILES['file']['tmp_name']; $uploadfile = $newftp->upload_file($destination_file, $source_file); echo "$source_file Uploaded
"; } if ($_GET['action'] == "logout") { $newftp->ftp_disconnect(); } -
65
$mylist = array(); $mylist = $newftp->get_file_list($mydir); $files = $newftp->parse_ftp_rawlist($mylist); echo ""; foreach($files as $data) { if ($data['perms'] == "Attributes") { echo "$data[name] $data[size] $data[date] $data[perms] Options "; } elseif ($data['is_dir'] == TRUE) { if ($mydir == "/") { $target = $mydir.$data[name]; } else { $target = $mydir."/".$data[name]; } echo " $data[name] $data[date] $data[perms] "; } else { echo " $data[name] ".round($data[size] / 1024)." KB $data[date] $data[perms] "; } } echo ""; echo ""; echo "
-
66
"; $newftp->ftp_disconnect(); } else { echo "No Connection Established
"; } ?>
Copyright © 2007class.php
-
67
class myftp { var $connector; var $getback; function connect($ftp_server, $ftp_user_name, $ftp_user_pass, $ftp_port){ $this->connector = @ftp_connect($ftp_server, $ftp_port); $this->login_result = @ftp_login($this->connector, "$ftp_user_name", "$ftp_user_pass"); if ((!$this->connector) || (!$this->login_result)) { echo "FTP connection to $ftp_server for user $ftp_user_name has failed!
"; echo "Return home
"; die; } else { if ($this->get_sys() == "UNIX") { echo "Connected to $ftp_server, for user $ftp_user_name."; } else { echo "Support for windows FTP servers has not yet been added."; die; } } } function last_mod_time($value){ $getback = ftp_mdtm($this->connector, '"'.$value.'"'); return $getback; } function synchronize($dirLocal, $dirRemote){ if ($this->connector != false){ $contents = scandir($dirLocal); foreach($contents as $file){ $file3 = "$dirLocal/$file"; $file2 = "$dirRemote/$file"; if (is_dir($file3) && !(($file == ".") || ($file == ".."))){ $this->synchronize($file3,$file2); } elseif (!(($file == ".") || ($file == ".."))) { if (!($this->change_dir($dirRemote))){ $this->new_dir($dirRemote); $this->change_dir($dirRemote); } date_default_timezone_set('GMT'); if (!(filemtime($file3) last_mod_time($file2))){ $fp = fopen($file3, 'r'); $filetime = " was last modified: " . date ("F d Y H:i:s O", $this->last_mod_time($file2)); if (strtotime(date ("F d Y H:i:s O", $this->last_mod_time($file2))) == -1) { $filetime = "not exist"; } $this->upload_open_file($file, $fp); echo "$file - transfer completed
"; -
68
echo "File Local was last modified: " . date ("F d Y H:i:s O", filemtime($file3)). "
"; echo "File Remote $filetime
"; } } } } } function new_dir($dir_name) { $getback = @ftp_mkdir ($this->connector,$dir_name) or die("You do not have permission to create this directory."); return $getback; } function get_file($localfile, $remotefile) { $getback = ftp_get($this->connector, $localfile, $remotefile, FTP_ASCII) or die("You do not have permission to access this file."); return $getback; } function rename_file($original_name, $new_name) { $getback = @ftp_rename ($this->connector, $original_name, $new_name) or die("You do not have permission to access this file."); } function match_file($dir_files, $basename) { foreach($dir_files as $key) { if ($key['name'] == $basename) { $getback = $key; } } return $getback; } function file_types($ext) { $type = array ( "exe" => "Windows Executables", "pdf" => "Electronic Book Documents", "doc" => "Microsoft Word Document", "xls" => "Microsoft Excel Document", "jpg" => "JPEG Image File", "gif" => "GIF Image File", "mp3" => "MPEG Layer 3 Audio File", "php" => "PHP Script File", "html" => "HTML Document", "htm" => "HTML Document", "txt" => "Plain Text File" ); return $type[$ext]; } function file_size($file){ $getback = @ftp_size ($this->connector,$file) or die("You do not have permission to access this file."); return $getback; } -
69
function delete_file($targetfile) { $getback = @ftp_delete($this->connector,$targetfile) or die("You do not have permission to access this file."); return $getback; } function download_file($targetfile, $localpath) { $handle = fopen($localpath, 'w'); $getback = ftp_fget($this->connector, $handle, $targetfile,FTP_ASCII, 0) or die("You do not have permission to access this file."); return $getback; } function upload_file($destination_file, $source_file) { $getback = @ftp_put($this->connector, $destination_file, $source_file, FTP_ASCII) or die("Permission denied for upload of file."); return $getback; } function upload_open_file($destination_file, $source_file) { $getback = @ftp_fput($this->connector, $destination_file, $source_file, FTP_ASCII) or die("Permission denied for upload of file."); return $getback; } function change_dir($targetdir){ $getback = @ftp_chdir($this->connector, $targetdir); return $getback; } function get_dir(){ $getback = ftp_pwd($this->connector); return $getback; } function file_chmod($command){ $getback = @ftp_site($this->connector, $command) or die("Could not chmod file. Permission denied."); return $getback; } function get_file_list($directory){ $getback = @ftp_rawlist($this->connector, $directory); return $getback; } function del_dir($directory) { $contents = ftp_nlist($this->connector, $directory); foreach($contents as $file){ if (ftp_size($this->connector, $file) == -1){ $this->del_dir($file); } else { ftp_delete($this->connector, $file); } } ftp_rmdir($this->connector, $directory);
-
70
} function get_sys() { $getback = @ftp_systype($this->connector) or die("An error has occuried."); return $getback; } function mode($pasvmode){ $getback = @ftp_pasv($this->connector, $pasvmode) or die("An error has occuried."); return $getback; } function ftp_disconnect(){ ftp_close($this->connector); } function parse_ftp_rawlist($list) { $files[0] = array ("perms" => "Attributes", "num" => "", "user" => "", "group" => "","size" => "Size", "date" => "Date", "name" => "Name", "is_dir" => "", "target" => ""); $regexp = "([-ldrwx]{10})[ ]+([0-9]+)[ ]+([A-Z-]+)[ ]+([A-Z-]+)[ ]+([0-9]+)[ ]+([A-Z]{3}[ ]+[0-9]{1,2}[ ]+[0-9:]{4,5})[ ]+(.*)"; foreach ($list as $line) { $is_dir = $is_link = FALSE; if (eregi($regexp, $line, $regs)) { if (!eregi("^[.]", $regs[7])) { $i++; if (eregi("^[d]", $regs[1])) { $is_dir = TRUE; } $files[$i] = array ( "perms" => $regs[1], "num" => $regs[2], "user" => $regs[3], "group" => $regs[4], "size" => $regs[5], "date" => $regs[6], "name" => $regs[7], "is_dir" => $is_dir, "target" => $target ); } } } return $files; } } ?>
js.js
// JavaScript Document function go_there(url) { var where_to= confirm("Do you really want to delete this file?"); if (where_to== true)
-
71
{ return true; } else { return false; } } function askData(oldfile) { var inputedData = prompt ("Rename file to:", oldfile ); if (inputedData == null) { return false; } else { if (confirm("Are you sure you want to rename the file to "+inputedData+"?")) { document.rename.newname.value = inputedData; return inputedData; } else { return false; } } }