BAB II
TINJAUAN PUSTAKA DAN DASAR TEORI

2.1.	Tinjauan Pustaka
Dari penelitian sebelumnya yang dilakukan Andreas Sinaga (2006) berjudul Aplikasi File Transfer Protocol Berbasis TCP/IP, telah dilakukan pembangunan suatu sistem aplikasi transfer file yang menggunakan protokol TCP/IP sebagai penghubung komunikasi antar client dan server yang bertujuan memudahkan pekerjaan manajemen file pada suatu server. Aplikasi tersebut dibangun dengan menggunakan bahasa pemrograman Borland Delphi 7.
Dalam penelitian kali ini akan digunakan bahasa pemrograman PHP, mengingat dalam PHP terdapat 25 fungsi yang mengijinkan kita bekerja dengan server FTP.

2.2.	Dasar Teori
2.2.1.	File Transfer Protocol (FTP)
File Transfer Protocol (FTP) didefinisikan sebagai sebuah protokol untuk mengirim dan menerima file antara client dan server, FTP merupakan mekanisme standar yang dimiliki protokol TCP/IP. FTP ini memanfaatkan layanan protokol TCP (lapisan 4) untuk melakukan operasinya. Sebagai proses, FTP memanfaatkan alamat port 21 untuk kontrol dan port 20 untuk transfer data.
Dalam internet TCP/IP protokol suite, FTP adalah suatu protokol layer aplikasi yang menggunakan layanan protocol TCP pada layer transport untuk memindahkan file. FTP menyediakan mekanisme generic download dan juga digunakan saat mentransfer file tunggal atau multiple dari suatu system computer ke lainnya. FTP memakai model client/server, dimana suatu program kecil dari client dijalankan di komputer dan mengakses server. FTP menyediakan semua tools yang diperlukan untuk melihat direktori dan file, mengganti ke direktori lain, serta mentransfer teks dan file biner dari suatu sistem ke lainnya. Contoh perintah pada FTP client dengan command line pada Linux antara lain :
1.	ls : melihat isi direktori
2.	pwd : memeriksa posisi direktori sekarang
3.	get : mengambil suatu file dari server (download)
4.	put : mengirim file ke server (upload)
5.	bye : keluar dari koneksi FTP
2.2.2.	Anonymous FTP
Anonymous File Transfer Protocol server adalah sebuah FTP server yang bersifat anonymous atau tidak membutuhkan permission yang khusus dari sebuah client untuk login ke FTP server tersebut, dengan kata lain FTP server tersebut dapat diakses tanpa harus memiliki login tertentu. Aturan standar dalam mengakses anonymous FTP adalah dengan mengisikan “Anonymous” pada isian username dan alamat email sebagai password. Namun isian password ini juga dapat diisikan sembarang.
Ada beberapa macam anonymous FTP server berdasarkan karakteristiknya, diantaranya ada yang memperbolehkan melakukan aktifitas write atau menyimpan dan read atau mengambil data tetapi tidak diizinkan menghapus apapun di FTP server tersebut, ada pula yang memperbolehkan hanya sekedar membaca dan mengambil file dari FTP tersebut tetapi tidak boleh menyimpan atau menghapus file. Ada juga yang membatasi user hanya pada direktori tertentu.  Anonymous FTP biasa digunakan untuk keperluan berbagi file, penyimpanan file driver dan sebagainya yang bersifat terbuka untuk umum dan aman diakses oleh siapa saja.
2.2.3.	Fungsi FTP dalam PHP
		PHP merupakan salah satu contoh bahasa pemrograman yang banyak digunakan dalam aplikasi web dan bersifat server – side, artinya perintah-perintah program (script) dijalankan di web server, kemudian hasilnya dikirimkan ke browser dalam bentuk HTML biasa.
	Pada bahasa pemrograman PHP terdapat fungsi FTP yang memberikan client akses ke server melalui File Transfer Protocol. Namun tidak semua fungsi FTP ini dapat bekerja dengan baik pada setiap server, tergantung dari versi PHP yang digunakan server tersebut. Fungsi FTP pada PHP hanya dapat digunakan pada PHP 3 keatas, dan ada beberapa yang bekerja pada PHP 5.
	Fungsi-fungsi tersebut dapat dilihat pada Tabel 2.1.
Tabel 2.1 Tabel Fungsi FTP Dalam PHP
Fungsi	Kegunaan	PHP	
ftp_alloc()	Mengalokasikan tempat untuk file yang akan dikirim ke FTP server	5	
ftp_cdup()	Naik satu level direktori pada server FTP	3	
ftp_chdir()	Mengganti direktori pada server FTP	3	
ftp_chmod()	Merubah hak akses pada file	5	
ftp_close()	Menutup koneksi FTP	4	
ftp_connect()	Membuka koneksi FTP	3	
ftp_delete()	Menghapus file pada server FTP	3	
ftp_exec()	Menjalankan program/command pada server FTP	4	
ftp_get()	Download file dari server FTP	3	
ftp_put()	Mengirim file ke server FTP	3	
ftp_login()	Login ke koneksi FTP	3	
ftp_mkdir()	Membuat direktori baru di server FTP	3	
ftp_nlist()	Menampilkan isi direktori pada server FTP	3	
ftp_pasv()	Digunakan untuk mengaktifkan dan mematikan mode passive	3	
ftp_pwd()	Menampilkan posisi direktori sekarang	3	
ftp_quit()	Mempunyai fungsi yang mirip dengan ftp_close()	3	
ftp_raw()	Mengirim perintah secara detail	5	
ftp_rawlist()	Mengembalikan daftar file secara detail pada direktori yang ditentukan	3	

ftp_rename()	
Mengganti nama file atau direktori pada server FTP	
3	
ftp_rmdir()	Menghapus direktori pada server FTP	3	
ftp_site()	Mengirim perintah SITE ke server	3	
ftp_size()	Mengkalkulasikan ukuran dari file yang dipilih	3	
ftp_ssl_connect()	Membuat koneksi SSL-FTP yang aman	4	
ftp_systype()	Mengembalikan indentifikasi tipe sistem pada server FTP	3	

2.2.4.	Apache2Triad 1.5.4
Apache2Triad 1.5.4 merupakan aplikasi yang dibuat oleh Vlad Alexa Mancini, aplikasi ini menggabungkan beberapa program yang diperlukan dalam keperluan web menjadi suatu kesatuan yang solid. Tiap program dikonfigurasi sedemikian rupa sehingga bisa saling mendukung satu sama lain. 
Dalam Apache2Triad terintegrasi aplikasi berikut :
1.	Apache Web Server 2.2.0
2.	SlimFTPd Server 3.18 
3.	PHP 5.1.2 
4.	Perl 5.8.7 
5.	Python 2.3.5
6.	MySQL 5.0.18 
7.	PostgreSQL 8.1.2 
8.	OpenSSL 0.9.8a 
9.	Xmail 1.22 
10.	Uebimiau Webmail
11.	Advanced Web Statistics 6.5 (build 1.857)
12.	phpMyAdmin 2.7.0
13.	phpSQLiteAdmin 0.2
14.	phpPgAdmin 4.0.1
2.2.5.	Web Browser
Web browser adalah perangkat lunak yang berfungsi menampilkan dan melakukan interaksi dengan dokumen-dokumen yang disediakan oleh server web. Web browser merepresentasikan paket-paket yang dikirim melalui aplikasi web, baik berupa data text, gambar, suara, maupun video. Contoh dari web browser antara lain Mozilla Firefox, Opera, Safari, Google Chrome dan Internet Explorer.