modul 10 pemrograman web ftp dan file reading
TRANSCRIPT
MODUL 10
PEMROGRAMAN WEB
FTP DAN FILE READING
A. TUJUAN PERKULIAHAN
a. Mahasiswa mengenali konsep FTP
b. Mahasiswa mengenali konsep File Reading
c. Mahasiswa mampu mengimplementasikan pengiriman file dengan FTP
d. Mahasiswa mampu membaca file dengan PHP
B. ALOKASI WAKTU 3 x 50 menit
C. DASAR TEORI
1. DEFINISI FTP
File Transfer Protocol (FTP) adalah suatu protokol yang berfungsi untuk tukar-menukar file
dalam suatu network yang menggunakan TCP koneksi bukan UDP. FTP dikembangkan oleh
Abhay Bhushan (alumni IIT dan MIt) pada tahun 1970-an, saat masih bekerja pada proyek
ARPAnet.
Dua hal yang penting dalam FTP adalah FTP Server dan FTP Client. FTP server adalah suatu
server yang menjalankan software yang berfungsi untuk memberikan layanan tukar menukar
file dimana server tersebut selalu siap memberikan layanan FTP apabila mendapat permintaan
(request) dari FTP client.
FTP client adalah computer yang merequest koneksi ke FTP server untuk tujuan tukar menukar
file. Setelah terhubung dengan FTP server, maka client dapat men-download, meng-upload,
merename, men-delete, dll sesuai dengan permission yang diberikan oleh FTP server.
2. FUNGSI FTP
Ada beberapa fungsi FTP yang saat ini banyak digunakan, seperti untuk mengunggah halaman
website melalui Internet ke dalam web hosting. Fungsi lain seperti memperbarui revisi dari
program yang dilakukan oleh aplikasi FTP developer. Lengkapnya, berikut ini adalah fungsi
dari FTP yang saat ini ada.
• Melakukan upload halaman website ke dalam web server/web hosting ke internet
• Menjelajah dan mengunduh file dari situs perangkat lunak publik
• Mengirimkan file yang berukuran besar yang mungkin saja terlalu besar untuk lampiran
di dalam email
• Mendistribusikan revisi terakhir program yang dilakukan oleh pengembang perangkat
lunak
• Pengiriman file dapat dilakukan secara terjadwal dan terencana
Tentu saja tidak hanya itu, ada banyak fungsi FTP lain yang bisa dimanfaatkan dalam
melakukan pekerjaan sehari-hari. Anda dapat mengembangakannya sendiri dan menyesuaikan
dengan kebutuhan penggunaan yang dibutuhkan. Namun, pada dasarnya fungsi sederhana dari
FTP adalah untuk memudahkan pengguna memindahkan file dari satu tempat ke tempat yang
lainnya.
3. FTP CLIENT
Di internet saat ini banyak sekali aplikasi FTP client yang tersedia. Salah satu aplikasi FTP
yang terkenal adalah FileZilla. Aplikasi FTP ini banyak digunakan untuk melakukan remote
FTP. Tidak hanya lengkap, melainkan juga dapat digunakan di berbagai macam sistem operasi,
seperti Linux dan Windows. Berikut ini adalah 3 contoh FTP client yang tersedia di internet.
• FileZilla
FileZilla FTP Client merupakan FTP client yang banyak digunakan untuk melakukan koneksi
remote FTP dengan fitur yang lengkap. Aplikasi FTP ini mendukung di beberapa sistem
operasi terkenal seperti Linux dan Windows. Kelebihannya adalah dapat melakukan transisi
simultan. Ketika meng-upload file tetapi koneksi terputus maka dapat diulang kembali. Namun
aplikasi FTP ini memiliki kekurangan yaitu membutuhkan waktu yang lama untuk
mengunggah berkas (file), jadi semakin banyak dan semakin besar berkasnya maka semakin
lama pula proses uploadnya.
• WINSCP
Meskipun tidak sepopuler FileZilla, WinSCP merupakan aplikasi yang juga cukup populer,
apalagi untuk pengguna Windows. Beberapa protokol yang dapat ditangani oleh WinSCP
adalah SFTP, SCP, FTP, dan WebDev. Kelebihan dari WinSCP adalah dukungan SSH
password, keyboard interaktif, public key, dan otentikasi Kerberos. Selain juga terintegrasi
dengan Pageant atas dukungan penuh otentikasi kunci publik dengan SSH. Sayangnya, aplikasi
FTP ini hanya bisa digunakan di Windows saja.
• GFTP
Apa itu FTP GFTP? GFTP merupakan aplikasi FTP client yang hanya tersedia di sistem
operasi Linux. Aplikasi ini adalah proyek sumber terbuka, jadi boleh dikembangkan dan
dipakai oleh siapa saja. Sudah mendukung protokol FTP, FTPS, HTTP, HTTPS, SSH, FSP.
Sayangnya aplikasi FTP ini hanya bisa digunakan untuk melakukan koneksi FTP
menggunakan antar jaringan lokal saja.
Selain tiga aplikasi di atas, tentunya masih ada beberapa aplikasi FTP client yang saat ini tersedia.
Adapun cara lain untuk upload file ke dalam server, bisa dilakukan dengan kode PHP. Perintah
yang biasa digunakan untuk upload file dengan FTP adalah :
• ftp_connect($ftp_server) → Digunakan untuk mengakses alamat FTP server terlebih
dahulu sebelum masuk ke kredensial. Parameter yang digunakan adalah alamat FTP server
• ftp_login($conn_id, $ftp_user_name, $ftp_user_pass) → Digunakan untuk
memasukkan username dan password yang menjadi kredensial login FTP server.
Parameter yang digunakan adalah status dari ftp_connect, username dan password dari FTP
server
• ftp_put($conn_id, $server_file, $source_file, $mode) → Digunakan untuk
mengirim file sesuai ke dalam FTP server. Parameter yang digunakan adalah status dari
ftp_connect, nama file yang diinginkan di server, nama file awal, serta mode transmisi data
file.
• ftp_close → Digunakan untuk menutup sesi pengiriman file dengan FTP.
4. CARA KERJA FTP
Cara kerja FTP dapat dijabarkan dengan urutan sebagai berikut :
a. FTP server menunggu request dari perangkat client
b. FTP client di install di komputer client
c. Komputer client melakukan request masuk ke FTP server melalui port nomor 21, dan
melakukan autentifikasi username dan password
d. Komputer server me-respon dengan memberikan koneksi melalui port nomo 1043
e. Komputer client melakukan aktivitas download melalui port 21 dan upload melalui port 20
f. Komputer server menerima akses download dengan port nomor 1043 dan upload engan
nomor port 1045
5. FILE WRITING AND READING
Dalam modul ini, Anda akan belajar beberapa fungsi penting dalam PHP yang memadai untuk
semua file dasar membaca dan menulis kebutuhan. Anda akan belajar bagaimana untuk
membaca file, menulis ke file, menulis ke file teks, dan memeriksa jika file tersedia. PHP juga
menyediakan banyak fungsi untuk membaca dan menulis data ke file sesuai dengan ekstensi
masing-masing. Ekstensi file yang biasa dipakai dalam file reading adalah *.txt, *.xml, *.xls
dan masih banyak lagi. Di dalam modul ini akan dijelaskan cara memeriksa keberadaan file,
membaca file dan menulis konten ke dalam file secara umum.
1 Periksa Keberadaan File
Langkah pertama ketika Anda mencoba untuk membaca data dari sebuah file atau menulis
sesuatu yakni harus memeriksa jika file yang sudah ada. Jika kode membaca data dari
sebuah file yang tidak ada maka dapat mengakibatkan peringatan dari PHP dan mungkin
akan muncul error dari kode Anda.
Cara termudah untuk memeriksa apakah file ada adalah dengan menggunakan fungsi
file_exists($filename) PHP.
Kode akan memiliki nilai balikan true jika file atau direktori dengan $filename tertentu
ada dan false jika tidak.
Parameter $filename tidak harus berupa nama file, namun bisa diisi dengan path direktori
Anda. Sebagai contoh, kita bisa menggunakan prime_numbers.txt atau science/project/
prime_numbers.txt.
Penting untuk diperhatikan bahwa fungsi ini juga akan return false untuk file yang tidak
dapat diakses karena pembatasan safe mode.
Fungsi lain yang dapat Anda gunakan untuk memeriksa keberadaan file adalah is_file().
Berbeda dengan file_exists(), fungsi ini hanya akan mengembalikan true jika yang
diakses adalah benar-benar merupakan file yang valid.
2 Memastikan File Benar-benar Ada
Jika Anda melakukan banyak operasi file pada kode Anda, Anda mungkin mendapatkan
hasil yang salah menggunakan fungsi di atas. Hal ini karena hasil eksekusi file_exists()
dan is_file() menggunakan cache untuk meningkatkan kinerja pengaksesan file. PHP
juga melakukan caching nilai-nilai yang dikembalikan oleh fungsi file system lainnya
seperti filesize(), filemtime(), dll.
Untuk menghindari hal tersebut. Anda dapat menggunakan clearstatcache() untuk
memastikan bahwa setiap informasi yang Anda akses file up-to-date.
Hal ini umumnya hanya akan bermasalah jika file yang sama sedang diakses beberapa kali
dalam satu skrip. Mungkin saja Anda tidak akan menghadapi masalah terkait caching, tapi
lebih baik untuk tahu bahwa Anda bisa membersihkan cache dalam hal expiring file.
3 Membaca dari Dalam File
Salah satu cara untuk membaca data dari file dalam PHP adalah dengan bantuan dari fungsi
file_get_contents ($filename, $include_path, $context, $offset, $maxlen).
Berikut penjelasan masing-masing parameter:
• Perintah ini akan membaca seluruh file dan menyajikannya kepada Anda dalam
bentuk string. Semua parameter kecuali yang pertama bersifat opsional. Parameter
pertama adalah nama dari file yang hendka dibaca
• Parameter kedua menerima sebuah nilai boolean untuk menentukan lokasi jika
harus mencari file dalam lokasi yang ditentukan oleh sertakan path, yang dapat
diatur menggunakan fungsi include_path().
• Parameter ketiga digunakan untuk menentukan opsi bagaimana file yang diakses.
Anda dapat menggunakannya untuk menentukan nilai header seperti cookie dan
Host serta metode HTTP.
• $offset parameter menentukan titik mana membaca dimulai pada file sumber.
Berikan nilai negatif jika akan mulai menghitung dari ujung belakang. Dukungan
untuk offset negatif hanya ditambahkan pada PHP 7.1.0.
• Fungsi file_get_contents() membaca seluruh file sekaligus secara default.
Apabila anda memberikan nilai $maxlen parameter, maka panjang karakter
dihitung sebanyak nilai offset dari $maxlen.
Fungsi ini akan return false jika gagal untuk membaca data dari file yang Anda tentukan.
Anda dapat menggunakan fungsi ini untuk membuka berkas remote, tapi itu akan mungkin
hanya jika nilai opsi allow-url-fopen dalam php.ini true atau 1.
Selain fungsi file_get_contents(), Anda juga dapat menggunakan fungsi fread()
untuk membaca file. Baca dokumentasi selengkapnya di w3schools
https://www.w3schools.com/php/php_file_open.asp
4 Menulis ke Dalam File
Untuk menulis data ke file di PHP dapat dilakukan dengan fungsi
file_put_contents ($filename, $data, $flags, $context).
Berikut adalah penjelasan dari masing-masing parameter:
• $filename menentukan nama berkas di mana data akan ditulis.
• Parameter kedua adalah data yang Anda ingin menulis ke file. Ingat bahwa PHP
akan secara otomatis membuat file dengan nama yang diberikan oleh Anda.
Namun, parameter ini tidak akan membuat direktori. Ini berarti bahwa Anda dapat
menyimpan file dengan nama coba.txt tanpa kesalahan. Namun akan
mengakibatkan kesalahan untuk folder/subfolder/coba.txt, jika folder/subfolder/
tidak ada.
• $flags menentukan bagaimana konten akan ditulis ke file. Parameter ini dapat diisi
salah satu atau semua tiga nilai berikut:
o FILE_USE_INCLUDE_PATH—nilai ini memberitahu PHP untuk mencari
nama file tertentu dalam direktori.
o FILE_APPEND— nilai ini akan memberitahu PHP untuk menambahkan data
Anda dikirimkan ke fungsi untuk data yang ada dalam file. Hal ini sangat
berguna jika Anda menyimpan data dalam file seperti log atau sebuah diary
pribadi.
o LOCK_EX— nilai ini akan memberitahu PHP untuk mendapat kunci pada file
sebelum mulai menulis konten ke dalamnya. Hal ini dapat mencegah hal-
hal tak terduga terjadi ketika dua skrip yang berbeda membaca atau menulis
data ke file yang sama. Dengan nilai yang tertentu ini, Anda akan
mendapatkan kunci eksklusif pada file. Anda dapat membaca lebih lanjut
tentang ini kunci dalam dokumentasi PHP fungsi flock().
• $context mengembalikan jumlah byte yang ditulis untuk file jika berhasil dan
false pada jika gagal.
Selain mnggunakan fungsi file_put_content(), Anda juga dapat menggunakan fungsi
fwrite() untuk menuliskan isi dalam file. Baca dokumentasi selengkapnya di w3schools
https://www.w3schools.com/php/php_file_create.asp
5 CONTOH a. Menulis dan Membaca file
<?php
$filename = 'file/baru.txt';
if (file_exists($filename)){
//membaca file dilanjutkan menulis file
$book_content = file_get_contents($filename);
file_put_contents('coba.txt', $book_content, LOCK_EX);
} else {
echo "file tidak ditemukan";
}
$filename = 'file/123.txt';
if (file_exists($filename)){
//membaca file dilanjutkan menampilkan isinya
$txt_content = file_get_contents($filename);
$txt_content_lowercase = strtolower($txt_content);
$individual_words = explode(' ', $txt_content_lowercase);
echo "Ada sejumlah ".count($individual_words)." Kata dalam
file ".substr($filename, 0, -4).".\n";
echo "<br> Isinya : $txt_content_lowercase";
} else {
echo "file tidak ditemukan";
}
?>
b. Mengirim file dengan PHP
<?php
$ftp_server = "saddang.com";
$ftp_username = "[email protected]";
$ftp_password = "pemrogramanweb";
$source_file = 'file/123.txt';
$target_file = 'target.txt';
// set up koneksi
$conn_id = ftp_connect($ftp_server);
// login dengan username dan password
$login_result = ftp_login($conn_id, $ftp_username, $ftp_password);
ftp_pasv($conn_id, true);
// cek koneksi
if ((!$conn_id) || (!$login_result)) {
echo "<h1>FTP gagal tersambung!</h1>";
exit;
} else {
echo "<h1>Koneksi ke $ftp_server berhasil</h1>";
}
// upload file
$upload = ftp_put($conn_id, $target_file, $source_file, FTP_BINARY);
// cek status upload
if (!$upload) {
echo "FTP upload gagal!";
} else {
echo "File $source_file berhasil diupload ke $ftp_server dengan nama
$target_file";
}
// tutup sesi FTP
ftp_close($conn_id);
?>
D. PRAKTIKUM : SAVE AND READ FILE
A. Brief Overview
Kita akan membuat kode untuk menyimpan data ke dalam file dengan format TXT dan
kemudian membacanya TXT itu adalah file text dasar yang biasa dibuka menggunakan
notepad atau text editor sederhana. pertama kali kita perlu memahami dahulu fungsi
apa saja yang akan digunakan. fungsi-fungsi tersebut ada tiga buah yaitu
- fopen()
- fwrite()
- fclose()
1 Buat folder “pemweb/pertemuan12” di dalam root diectory dari web server
c:\xampp\htdocs\. Di dalamnya, buat lagi folder dengan nama “file”
2 Gunakan bootstrap sebagai template aplikasi kita. Ambil saja starter template yang
tersedia di https://getbootstrap.com/docs/5.0/getting-started/introduction/
3 Tambahkan navigasi untuk memudahkan kita dalam mengakses file lainnya. Ubah
baris kode di bagian body menjadi seperti berikut.
4 Selanjutnya kita isi di bagian bawah navigasi dengan form untuk membuat file yang
terdiri dari nama file dan isi file. Form akan mengarah pada file simpan.php.
5 Buat file simpan.php yang akan menerima input parameter dari index.php. isi dengan
kode berikut.
6 Kembali ke index.php, tambahkan kode berikut di antara main container dan main
card.
7 Selamat! Halaman penyimpanan file sudah berhasil dibuat. Selanjutnya kita buat
halaman pembacaan file. Buat file dengan nama baca.php lalu ubah bagian <main>
menjadi seperti berikut
8 Panggil seluruh daftar file yang ada di dalam folder “file” dengan menambah kode
berikut pada card pertama.
9 Baca isi file yang dipilih dengan menambah kode berikut pada card kedua.
10 Hasil akhir
11 Oke, sudah semua. Sekarang simpan file dan kompres rar/zip file dengan format
NIM_Nama_PW12
12 Kirim semua file yang telah dibuat (php dan txt) dengan menggunakan FTP dengan
konfigurasi berikut
Host : saddang.com
Username : [email protected]
Password : pemrogramanweb
Port : kosongkan / 21
E. REFERENSI
https://www.w3schools.com/php/php_file.asp
https://www.belajarwebpedia.com/2017/11/menyimpan-data-pada-file-txt-dengan-php.html
https://code.tutsplus.com/id/tutorials/reading-and-writing-data-to-files-in-php--cms-32117
http://notepadsederhana.blogspot.com/2011/11/membuat-dan-membaca-file-txt.html