Menu Navigasi

Tutorial Tutorial Pemrograman Part 70: Mastering PHP Streams for Efficient Data Handling

AI Generated
28 Desember 2025
19 views
Tutorial Tutorial Pemrograman Part 70: Mastering PHP Streams for Efficient Data Handling

Pendahuluan

Selamat datang di Part 70 dari seri tutorial pemrograman PHP Zero to Hero! Di bagian ini, kita akan mempelajari tentang PHP Streams, sebuah konsep powerful untuk menangani data dari berbagai sumber secara efisien. Streams memungkinkan Anda untuk membaca dan menulis data dari file, jaringan, memory, dan sumber lainnya dengan cara yang seragam.

Prasyarat:

  • Pemahaman dasar tentang file handling di PHP.
  • Pengetahuan tentang resource types di PHP.
  • Disarankan: Telah memahami tentang generator (dari Part 69: Memahami Generator dalam PHP).

Konsep Dasar

Bayangkan Streams seperti pipa air. Anda memiliki sumber air (data) dan tujuan (tempat penyimpanan atau output). Streams menyediakan cara untuk memindahkan air dari sumber ke tujuan dengan berbagai manipulasi di sepanjang jalan. Di PHP, Streams adalah abstraksi dari operasi I/O (Input/Output), yang memungkinkan Anda untuk berinteraksi dengan berbagai jenis sumber data seperti file, URL, dan memory dengan cara yang konsisten.

Resources adalah pengenal khusus (identifier) yang merepresentasikan sumber eksternal seperti file, koneksi database, atau stream.

Hands-on Coding

1. Membuka dan Membaca File dengan Stream


<?php
// Path ke file yang akan dibaca
$filename = 'data.txt';

// Membuka stream ke file dengan mode baca ('r')
$stream = fopen($filename, 'r');

if ($stream) {
 // Membaca seluruh isi file ke dalam string
 $content = stream_get_contents($stream);

 // Menutup stream
 fclose($stream);

 // Menampilkan isi file
 echo $content;
} else {
 echo 'Gagal membuka file.';
}
?>

Penjelasan:

  • fopen($filename, 'r'): Membuka stream ke file 'data.txt' dalam mode baca. 'r' adalah mode yang menunjukkan bahwa kita hanya akan membaca file.
  • stream_get_contents($stream): Membaca seluruh isi stream dan mengembalikannya sebagai string.
  • fclose($stream): Menutup stream untuk membebaskan sumber daya.

2. Menulis ke File dengan Stream


<?php
// Path ke file yang akan ditulis
$filename = 'output.txt';

// Membuka stream ke file dengan mode tulis ('w')
$stream = fopen($filename, 'w');

if ($stream) {
 // Data yang akan ditulis
 $data = 'Hello, Streams!';

 // Menulis data ke stream
 fwrite($stream, $data);

 // Menutup stream
 fclose($stream);

 echo 'Data berhasil ditulis ke file.';
} else {
 echo 'Gagal membuka file untuk penulisan.';
}
?>

Penjelasan:

  • fopen($filename, 'w'): Membuka stream ke file 'output.txt' dalam mode tulis. 'w' akan menimpa isi file jika sudah ada.
  • fwrite($stream, $data): Menulis data ke stream.

3. Menggunakan Stream Filters

Stream filters memungkinkan Anda untuk memodifikasi data saat dibaca atau ditulis melalui stream. Contohnya, kita akan mengenkripsi data saat ditulis ke file.


<?php
// Path ke file
$filename = 'encrypted.txt';

// Membuka stream untuk penulisan
$stream = fopen($filename, 'w');

if ($stream) {
 // Menambahkan stream filter untuk enkripsi (contoh: ROT13)
 stream_filter_append($stream, 'string.rot13');

 // Data yang akan ditulis
 $data = 'This is a secret message.';

 // Menulis data ke stream (akan dienkripsi)
 fwrite($stream, $data);

 // Menutup stream
 fclose($stream);

 echo 'Data berhasil dienkripsi dan ditulis ke file.';
} else {
 echo 'Gagal membuka file.';
}
?>

Penjelasan:

  • stream_filter_append($stream, 'string.rot13'): Menambahkan filter ROT13 ke stream. Filter ini akan mengenkripsi data menggunakan ROT13 cipher sebelum ditulis ke file.

Common Pittfalls

  • Lupa Menutup Stream: Selalu pastikan untuk menutup stream dengan fclose() setelah selesai digunakan untuk membebaskan sumber daya.
  • Mode yang Salah: Membuka file dengan mode yang salah (misalnya, membaca file dengan mode tulis) dapat menyebabkan error atau kehilangan data.
  • Tidak Menangani Error: Selalu periksa apakah fopen() berhasil sebelum melanjutkan operasi stream.

Challenge

Buatlah sebuah program PHP yang membaca isi sebuah file CSV dan menulisnya ke file baru dengan format yang berbeda (misalnya, mengubah delimiter dari koma menjadi titik koma). Gunakan PHP Streams untuk membaca dan menulis data.

Sumber Referensi

Bagikan: