APLIKASI FILE TRANSFER PROTOCOL CLIENT BERBASIS WEB DENGAN FUNGSI...

87
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

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 © 2007

    save as.php

  • 60



    Copyright © 2007

    view.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 © 2007

    control.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 © 2007

    class.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; } } }